APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

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

擬似障害などでCPU負荷をかける際に一般的なstressコマンドですが、標準パッケージではないため、インストールできない場合(勝手にインストールできない、インターネットに接続できない環境など)は以下の方法で手軽にCPU負荷がかけられます。(CPU使用率/ロードアベレージ)

 

手順

1.以下のコマンドを実行

CPU負荷コマンド

yes > /dev/null

 

2.1プロセスでは足りないという方は、バックグラウンドに回して複数実行

 CPU負荷×10

# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &

# jobs
[1] 実行中 yes > /dev/null &
[2] 実行中 yes > /dev/null &
[3] 実行中 yes > /dev/null &
[4] 実行中 yes > /dev/null &
[5] 実行中 yes > /dev/null &
[6] 実行中 yes > /dev/null &
[7] 実行中 yes > /dev/null &
[8] 実行中 yes > /dev/null &
[9] 実行中 yes > /dev/null &
[10] 実行中 yes > /dev/null &

 

3.実行中のプロセス状況確認

負荷状況

# ps aux | grep yes | grep -v grep
root 1883 12.7 0.0 100904 580 pts/2 R 14:32 0:06 yes
root 1885 11.3 0.0 100904 580 pts/2 R 14:32 0:05 yes
root 1887 11.0 0.0 100904 580 pts/2 R 14:32 0:05 yes
root 1889 10.6 0.0 100904 576 pts/2 R 14:32 0:05 yes
root 1892 10.3 0.0 100904 580 pts/2 R 14:32 0:05 yes
root 1894 10.1 0.0 100904 580 pts/2 R 14:32 0:04 yes
root 1896 9.8 0.0 100904 576 pts/2 R 14:32 0:04 yes
root 1898 9.7 0.0 100904 580 pts/2 R 14:32 0:04 yes
root 1900 9.8 0.0 100904 580 pts/2 R 14:32 0:04 yes
root 1902 9.8 0.0 100904 580 pts/2 R 14:32 0:04 yes


# top
top - 14:34:32 up 1:26, 3 users, load average: 8.64, 4.12, 2.78
Tasks: 99 total, 11 running, 88 sleeping, 0 stopped, 0 zombie
Cpu(s): 10.7%us, 1.0%sy, 0.0%ni, 88.2%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1910216k total, 150436k used, 1759780k free, 14552k buffers
Swap: 2097144k total, 0k used, 2097144k free, 52320k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1883 root 20 0 98.5m 580 492 R 10.3 0.0 0:13.57 yes
1889 root 20 0 98.5m 576 492 R 10.3 0.0 0:12.27 yes
1896 root 20 0 98.5m 576 492 R 10.3 0.0 0:11.48 yes
1885 root 20 0 98.5m 580 492 R 8.5 0.0 0:12.73 yes
1887 root 20 0 98.5m 580 492 R 8.5 0.0 0:12.46 yes
1892 root 20 0 98.5m 580 492 R 8.5 0.0 0:12.01 yes
1894 root 20 0 98.5m 580 492 R 8.5 0.0 0:11.82 yes
1898 root 20 0 98.5m 580 492 R 8.5 0.0 0:11.33 yes
1900 root 20 0 98.5m 580 492 R 8.5 0.0 0:11.17 yes
1902 root 20 0 98.5m 580 492 R 6.8 0.0 0:11.07 yes


# uptime
14:35:44 up 1:27, 3 users, load average: 9.68, 5.37, 3.31

 

4.負荷試験が終わったら、killコマンドで直接バックグラウンドプロセスを止める(jobIDに%つける)

 

BGジョブの停止

# kill %1 %2 %3 %4 %5 %6 %7 %8 %9 %10
[1] 終了しました yes > /dev/null
[2] 終了しました yes > /dev/null
[3] 終了しました yes > /dev/null
[4] 終了しました yes > /dev/null
[5] 終了しました yes > /dev/null
[6] 終了しました yes > /dev/null
[7] 終了しました yes > /dev/null
[8] 終了しました yes > /dev/null
[9] 終了しました yes > /dev/null
[10] 終了しました yes > /dev/null

 

手軽ですが、本番環境での利用には注意してください。