Help us understand the problem. What is going on with this article?

Linuxサーバに一時的な負荷をかけたい、という話

More than 3 years have passed since last update.

この記事は?

  • 開発をしていると、「サーバに負荷がかかっている状態においてどのような挙動を示すか?」という確認をしたいことが稀にある。
  • 細かいことはいいから手間をかけず、さくっと負荷をかけたい。
  • そこで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よりも大きい値にしてあげてください。


以上

Hiroki_lzh
・普通からはみ出した逸般人。 ・Perl は古き良き言語だと思う。好き。 ・Zabbixは良く出来た監視ツールだと思う。好き。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away