Red Hat LinuxボックスでCPU負荷を設定する方法は?
-
02-07-2019 - |
質問
RHEL ボックスがあり、適度な可変量の下に置く必要がありますCPU負荷(50%-75%)。
これについて最善の方法は何ですか?私が知らない、これを行うことができるプログラムはありますか?これを実現するためのCコードを書いてうれしいです。どのシステムコールが役立つかわかりません。
解決
これはまさにあなたが必要とするものです: http://weather.ou.edu/~apw/projects/stress/
ホームページから: " stressは、POSIXシステム用のシンプルなワークロードジェネレーターです。構成可能な量のCPU、メモリ、I / O、およびディスクストレスをシステムに課します。 Cで書かれており、GPLの下でライセンスされるフリーソフトウェアです。"
他のヒント
ソースコードがある単純な素数検索プログラムを見つけます。ソースコードを変更して、nanosleep呼び出しをメインループに追加し、必要なCPU負荷がかかる遅延を追加します。
システムに負荷をかける一般的な方法の1つは、大規模なソフトウェアパッケージを何度もコンパイルすることです。 Linuxカーネルのようなもの。
ソースコードのコピーを取得し、tar.bz2を抽出して、最上位のソースディレクトリに移動し、カーネル構成を/ bootから.configまたはzcat /proc/config.gzにコピー> .config、do make oldconfig、その後true。きれいに&&してくださいmake bzImage;完了
SMPシステムがある場合、make -j bzImageは楽しいです。makeタスクを並行して生成します。
これに関する1つの問題は、CPU負荷の調整です。ディスクI / Oで待機する場合を除き、最大CPU負荷になります。
Bashスクリプトを使用してこれを行うことができます。使用" ps -o pcpu | grep -v CPU"すべてのプロセスのCPU使用率を取得します。これらの値をすべて加算して、現在の使用状況を取得します。次に、基本的にこれらの値をチェックし、現在のCPU使用率を把握し、計算された時間待機してプロセッサを特定のしきい値に保つビジーwhileループを使用します。詳細が必要ですが、うまくいけば良い出発点になると思います。
この CPUモニタースクリプトを見て、これを達成する方法について他のアイデアを入手してください。
テストする対象によって異なります。 CPU負荷をテストするだけの場合は、空のCPUサイクルを食べる簡単なスクリプトで問題なく動作します。私は最近RAIDアレイのパフォーマンスをテストする必要があり、Bonnie ++とIOZoneに依存していました。 IOZoneは、特にファイルサイズをRAMより大きく設定した場合、ボックスに適切な負荷をかけます。
この記事。
「nice」を使用します;コマンド。
a)最高の優先度: $ nice -n -20 my_command
または
b)最低優先度: $ nice -n 20 my_command
&をロードする簡単なスクリプトawkを使用してCPUをハンマーします。スクリプトは数学的計算を行うため、CPU負荷は高い値passwdでloadserver.shにピークアップします。
@a http://unixfoo.blogspot.com/2008/11/linux-cpu -hammer-script.html
これを実現するには、おそらく負荷生成ツールを使用するか、すべてのCPUサイクルを実行するスクリプトを実行してから nice および renice
を使用して、プロセスが取得するサイクルの割合を変更します。
すべての空きCPUサイクルを占有するサンプルbashスクリプトは次のとおりです。
#!/bin/bash
while true ; do
true
done
Lookbusyは、CPU負荷の設定値を有効にします。 プロジェクトサイト
lookbusy -c util[-high_util], --cpu-util util[-high_util]
i.e. 60% load
lookbusy -c 60
ここにあなたの目標が何であるかわかりません。 glxgearsは100%CPUを使用すると信じています。
だから、CPUを100%に最大化することがわかっているプロセスを見つけます。
4つのCPUコア(0 1 2 3)がある場合、「taskset」を使用できます。このプロセスをバインドして、CPU 0および1を指定します。これにより、ボックスが50%読み込まれます。 75%をロードするには、プロセスを0 1 2 CPUにバインドします。
免責事項:これをテストしていません。結果をお知らせください。これが機能する場合でも、これから何を達成できるかわかりませんか?