web-dev-qa-db-ja.com

リソースガバナーがCPUを制限していない/ RAM

多くのリソースを消費しているアプリケーションがありますが、実際にはこのアプリケーションがCPUを駆動します。 99%でサーバーが使用できなくなります(サードパーティのアプリケーションと同じように、これについて私ができることは何もないと思います)。

そこで、このアプリケーションに固有のリソースプールを作成することにしました。

リソースプールを作成した後、このアプリケーションを2コアと25%のCPU/RAMに制限しましたが、完全に機能しました。サーバーのCPUは常に25〜26%で、以前は99%でした...

次に、リソースグループのMAXDOPを削除することを決定し、アプリケーションは再び99%になりました...アプリケーションクエリが8つの並列プロセスを開いたことを確認したので、リソースプールをMAX 10%に置くとうまくいくと思いました(10 * 8 = 80%CPU)しかし、コアを制限しないと、99%のCPU消費が再び得られます...

何が悪いのでしょうか?...

2
J1mmy

リソースプールのCPUを制限する場合は、CAP_CPU_PERCENT設定を使用する必要があります。

この設定は、リソースプール内のすべてのリクエストに対するCPU帯域幅のハードキャップ制限です。プールに関連付けられたワークロードは、MAX_CPU_PERCENTの値が利用可能であれば、それを超えるCPU容量を使用できますが、CAP_CPU_PERCENTの値を超えることはできません。

MAX_CPU_PERCENT設定は、平均CPU使用率を制限するように設計されています。サーバーに競合がない場合は、無視できます。

使用可能なCPU容量がある場合、ワークロードはそれを最大100%使用します。最大値は、CPUリソースの競合がある場合にのみ適用されます。

ドキュメント で、さまざまなリソースプール設定の詳細を確認できます。

3
Joe Obbish