運営者プロフィール

Linuxで手軽にCPU負荷をかける方法をまとめてみた

本記事対象者
Linuxで手軽にCPU負荷をかける方法について知りたい方

ども。あいしんくいっと(@ithinkitnet)です。

仕事柄、検証などでLinuxにCPU負荷をかけたいシチュエーションに遭遇することがあります。
そんな時はどうすれば良いのでしょうか?

今回は「Linuxで手軽にCPU負荷をかける方法」について調べてみたいと思います。

CPU負荷を手軽にかける方法

一般的に知られている「stress」といったツールを使って・・・、といった方法ではなく、Linux標準コマンドで出来る方法が良いんですよね。
本番環境とかだと気軽ツールとかインストール出来ないので。
なので、なるべく環境には手を加えない方法で調べてみました。

yesコマンドを使う

yesコマンドはOS標準で入っているビルトインコマンドです。
このyesコマンドを連打することによってCPU負荷をかける方法になります。

yesコマンドで処理をかける
# yes > /dev/null
リダイレクトの向きに気を付けてください。
処理を停止させる場合は「Ctrl + C」になります。

1個だとたいした負荷はかからないので、ターミナルを複数立ち上げでyesコマンド連打もアリ。

yesコマンド連打で処理をかける
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &

停止させる場合は「jobs」で確認し、

jobsコマンドで確認
# jobs
[1] 実行中 yes > /dev/null &
[2]- 実行中 yes > /dev/null &
[3]+ 実行中 yes > /dev/null &

以下のような感じで停止させる

yesコマンド処理停止
# kill %1 %2 %3
[root@cent6-non-lvm ~]# jobs
[1] 終了しました yes > /dev/null
[2]- 終了しました yes > /dev/null
[3]+ 終了しました yes > /dev/null

参考 【Linux】stressコマンドを使わずに手軽にCPU負荷をかける方法

opensslコマンドを使う

opensslコマンドでCPUのクロック数に合わせてCPU負荷をかけます。

opensslコマンドで処理をかける
# openssl speed -multi `grep processor /proc/cpuinfo|wc -l`
opensslコマンド処理実行例
# openssl speed -multi `grep processor /proc/cpuinfo|wc -l`
Forked child 0
+DT:md2:3:16
+R:454138:md2:3.000000
+DT:md2:3:64

opensslコマンドでの処理を停止させる場合は「Ctrl + C」

参考 LinuxでCPU使用率を上げるコマンド

無限にgzipさせる

gzipを使ってCPU負荷をかける方法です。

gzipコマンドで処理をかける
# gzip -9 < /dev/urandom > /dev/null

gzip処理1個だとたいした負荷はかからないので「yes」コマンドと同様に複数ターミナルで実行させるのもアリ。

gzipコマンド連打で処理をかける
# gzip -9 > /dev/urandom > /dev/null &
[1] 5075
# gzip -9 > /dev/urandom > /dev/null &
[2] 5076
# gzip -9 > /dev/urandom> /dev/null &
[3] 5077
停止させる場合は「yes」と同様。
gzipコマンド連打の処理停止
# kill %1 %2 %3
[1] 終了しました gzip -9 > /dev/urandom > /dev/null
[2]- 終了しました gzip -9 > /dev/urandom > /dev/null
[3]+ 終了しました gzip -9 > /dev/urandom > /dev/null

参考 Linux お手軽にCPUに負荷をかけたい

上に挙げた以外にも、CPU負荷をかける方法はたくさんあると思いますが、ある程度考えてやらないと環境そのものを壊してしまう可能性も考えられるので、その点は注意してくださいねー。

ithinkit

検証のために負荷かけて環境が壊れてしまったら、元も子もないですからw

以上、あいしんくいっとでした。

2 COMMENTS

アバター pitman

バックグラウンドジョブを全て kill するのは

$ kill $(jobs -p)

とするといいかも。

返信する
アバター あいしんくいっと

pitman さん

コメントありがとうございます。
確かに使えますね。情報ありがとうございます!

[root@dos-vps-srv ~]# jobs -p
19514
[root@dos-vps-srv ~]# kill $(jobs -p)
[root@dos-vps-srv ~]# jobs
[1]+ Terminated while true; do
ls --color=auto; sleep 15;
done
[root@dos-vps-srv ~]# jobs
[root@dos-vps-srv ~]#

返信する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)