4

私たちがソフトウェアを開発している一部のお客様には、一定量の予備リソース (メモリ、ディスク容量、CPU) を「保証」する必要があります。メモリとディスク容量は単純ですが、CPU は少し難しいです。

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

通常のアプリケーションが許容レベルのパフォーマンスで実行でき、空き時間プロセスの実行中にすべての機能テストに合格できる場合、空き CPU 時間のコミットメントを達成したと「仮定」します。

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

4

4 に答える 4

2

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

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

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

私はあなたがアイデアを得ると思います。2400 Mhz ではなく 1600 Mhz で実行する場合、33% の空き CPU 時間を保証できます。

于 2008-09-25T04:03:18.120 に答える
2

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

于 2008-09-25T03:42:55.267 に答える
1

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

于 2008-09-25T03:38:58.710 に答える
0

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

于 2008-09-25T03:38:05.670 に答える