Linux ベースのシステムで「空き」CPU 時間を測定する最良の方法は何ですか?

StackOverflow https://stackoverflow.com/questions/131335

  •  02-07-2019
  •  | 
  •  

質問

当社がソフトウェアを開発する一部の顧客に対しては、一定量の予備リソース (メモリ、ディスク容量、CPU) を「保証」する必要があります。メモリとディスク容量は簡単ですが、CPU は少し難しくなります。

私たちが使用した手法の 1 つは、保証された量の CPU 時間を消費するプロセスを作成することです (たとえば、5 秒ごとに 2.5 秒)。このプロセスは、必要な CPU サイクルをすべて実行して消費することを保証するために、最高の優先順位で実行されます。

通常のアプリケーションが許容可能なレベルのパフォーマンスで実行でき、空き時間プロセスも実行中にすべての機能テストに合格できる場合、空き CPU 時間の約束を果たしたと「想定」されます。

同じことを行うための他のテクニックがあると思いますので、それらについて学びたいと思います。

役に立ちましたか?

解決

したがって、これはあなたが探している答えとまったく同じではないかもしれませんが、アプリケーションがリソース消費の特定の制限を超えないようにすることだけを望み、Linux 上で実行している場合は、/etc/security/ をカスタマイズできます。特定のユーザーに制限を強制し、そのユーザーの下でのみプロセスを実行するには、limits.con (選択したディストリビューションでは異なるファイルである可能性があります) を使用します。もちろん、これはクライアントの実稼働環境をそのレベルで制御できることを前提としています。

他のヒント

私の理解が正しければ、あなたの懸念は、指定された割合の処理能力が利用できないときにもアプリケーションが実行されるかどうかです。

最も議論の余地のないアプローチは、テストに能力の低いハードウェアを使用することです。セットアップ内のプロセッサーで許可されている場合は、オンラインでダウンクロックできます。Linux カーネルは、これを行うための簡単なインターフェイスを提供します。を参照してください。 /sys/devices/system/cpu/cpu0/cpufreq/. 。このための GUI アプリケーションも多数利用可能です。

プロセッサーがオンラインでクロック速度を変更できない場合は、ハードな方法で変更し、BIOS でより小さい乗数を選択することができます。

ご理解いただけると思います。2400 Mhz ではなく 1600 Mhz で実行すると、CPU の空き時間の 33% を保証できます。

SAR は、システム リソースの運用上の使用に関する情報を収集する標準の *nix プロセスです。さまざまなレポートを作成できるコマンド ライン ツールもあり、データはデータベースに保存されるのが一般的です。

マルチコア/プロセッサ システムでは、アフィニティを有利に活用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top