この記事は?
- 開発をしていると、「サーバに負荷がかかっている状態においてどのような挙動を示すか?」という確認をしたいことが稀にある。
- 細かいことはいいから手間をかけず、さくっと負荷をかけたい。
- そこでPerlですよ!
前提条件
この記事においてはターゲットをLinuxサーバとしています。
Windowsにおける負荷はcygwin等を用意してもらうか、別の方法を検討してください。
負荷のかけ方
CPU
Perlで無限ループを複数発生させます。
4Coreの環境ですべてのCPU使用率を100%にしたい、という場合はこんな感じ。
$ for i in {1..4}
> do
> perl -e 'while(1){}' &
> done
もちろん、1行でもOK。
$ for i in {1..4}; do perl -e 'while(1){}' & done
停止させるときはPIDを確認した上でkillコマンドで。
topやpsでgrepしてもいいけど、次のがワンラインでかっこいい。
$ kill -9 `ps -ef|perl -lane '/perl -e while\(1\)\{\}/ and print $F[1]'`
メモリ
とにかく配列処理をやらせてメモリを使い潰そう、というコンセプト。
$ perl -e '$c[$_]="a"x$_ for 1..10000'
もっとメモリを使わせたい、ということであれば10000よりも大きい値にしてあげてください。
以上