負荷検証するためのメモ
CPUに対して負荷をかける
# yesを使う場合
# 1プロセスで足りない場合は複数実行
yes > /dev/null &
# gzipを使う場合
# 1プロセスで足りない場合は複数実行
gzip -9 < /dev/urandom > /dev/null &
# opensslを使う場合
openssl speed -multi `grep processor /proc/cpuinfo|wc -l`
解説
&
の意味: バックグラウンド実行
<bash_command> > /dev/null
の意味: 出力を破棄する。なにも表示されない。
<bash_command> < /dev/urandom
の意味: 乱を生成しコマンドに対して引数として渡す
メモリ負荷
以下の実行にyesコマンドの実行結果を/dev/nullにレンダリングし続けることで使用メモリを高めていく。
# 1プロセスで足りない場合は複数実行
/dev/null < $(yes) &
# malloc, free 関数を繰り返し実行するコマンド
# --vm で起動するプロセス数を指定する。
# --vm-bytes で確保するメモリを指定する。
# --vm-keep を指定すると、free を行わず確保したままにしてくれる。
stress --vm 2 --vm-bytes 1G --vm-keep
注意事項:
--vm-bytes
の値が大きすぎる場合、メモリに乗らないためエラーとなる
その時は、--vm プロセス数
× --vm-bytes数
が合計のメモリサイズになるためプロセス数を増やすことで合計メモリを上げることができる。
容量負荷
以下のコマンドにてファイル生成をすることができる。
全てNULL文字で埋まったファイルを生成する。
注意事項
メモリに乗り切らないぐらいの大きさのbsを指定すると失敗する。
この場合にはbsの値を小さくして、countの値を大きくすることで対応する。
bs*countの値が最終的に出力されるファイルサイズとなる。
# 100バイトのファイルを生成する
dd bs=100 count=1 if=/dev/zero of=file1
# 102400バイトのファイルを生成する
dd bs=1K count=100 if=/dev/zero of=file2
# 100000バイトのファイルを生成する
dd bs=1KB count=100 if=/dev/zero of=file3
ログファイルなどがボトルネックになっている場合は、削除or移動して空き容量を確保すること
# 最終更新日が90日以上経過している"*.log"ファイルの削除
find $TARGET_DIR -type f -name "*.log" -mtime +90 | xargs rm -f
最後には立ち上げたプロセスの分削除すること
jobs
# jobsの実行結果に出てくるプロセス分 引数を取り削除
kill %1 %2 %3 ... %N