web-dev-qa-db-ja.com

stress-ng:特定のCPUパーセンテージをシミュレート

Linux環境:Debian、Ubuntu、Centos

目標:
アラームを設定し、異なるCPUパーセンテージで異なるアラームをトリガーするテスト監視プログラム。
例:(30-50%)、(51-70%)および> 90%

したがって、コアあたりの特定のCPUパーセンテージをシミュレートできるCPUストレッサーが必要です。
stress-mgは、最も高度なように見えます。

そのドキュメントによると http://kernel.ubuntu.com/~cking/stress-ng/ 負荷値を0〜100%に設定できます。

-l P --cpu-load P load CPU by P%、0 = sleep、100 = full load(-cを参照)

stress-ng -c 1 -p 30

stress-ng:info:[12650] dispatching hogs:0 I/O-Sync、1 CPU、0 VM-mmap、0 HDD-Write、0 Fork、0 Context-switch、30 Pipe、0 Cache、0 Socket、0利回り、0割り当て、0フロック、0アフィニティ、0タイマー、0デントリー、0ランダム、0フロート、0 Int、0セマフォ、0オープン、0 SigQueue、0ポーリング

望ましくない結果:
しかし、それは機能していないようです、ALLコアは100%で消費されます

enter image description here

これを達成する方法はありますか?

9
AJN

私はstress-ngを設計して、オンラインCPUの数と一致するようにストレッサープロセスの数に0を指定できるようにし、各CPUをたとえば40%でロードするには、

ストレス-ng -c 0 -l 40

11
Colin Ian King

-lオプションを使用する必要があった

  1. -c 1のように見え、すべてのコア間で負荷を分散します。コアあたり正確に80/4ではありません。ホストがすでに何かを実行しているためです。

    ストレス-ng -c 1 -l 80

enter image description here

  1. および-c 4各コアの負荷をシミュレートします

    ストレス-ng -c 4 -l 80

enter image description here

3
AJN