WSRMを使用して最大CPU使用率を制限するSQL SERVER


10

SQL Serverの1つのインスタンスを実行している物理サーバーがあります。

このサーバーがCPU使用率100%で実行されていることがよくあります。

私のITチームはこれに満足しておらず、32コアのうち2コアをOS用に予約することを提案しました。

これは問題なく機能し、最大使用率のピークは90%未満になりました。さらに、さまざまなユーザーからの遅いデータ取得は報告されなくなりました。

SQLリソースガバナーの代わりに、この方法でWSRM(Windowsシステムリソースマネージャー)を使用しない理由はありますか?


すべてのCPUを本当に使用しますか?OS用にいくつかのコアを保存することは賢明ではないでしょうか?私のワークステーションで、すべてのコアをいくつかの処理に使用すると、マシンが粉砕して停止します。私は常にいくつかのコアを空けておく。これは、SQL Server専用のマシンでも適切ではありませんか?
ManInMoon

このサーバーではどのような負荷がかかっていますか?どのタイプのプロセスがCPUを100%使用していますか?これはOLTPですか、分析ですか、グラフですか?
Max Vernon

@Forrestチューニングとは、SQL Serverそのものですか、それともクエリ/テーブル構造ですか?SQL Serverの場合は、参照先へのリンクを教えてください。クエリ/テーブルの場合は、できる限りオプティマイズしますが、一部のユーザーはデザインをあまり意識していません。
ManInMoon

回答:


14

定義したアプローチを使用しない理由はありますか?もちろんです。

あなたが車を買ったと想像してください-あなたが50MPHに達するとエンジンがオーバーヒートし始める車です。この状況に対するあなたの反応は、人為的に車を49MPHに制限することですか、それともエンジンの故障が何であるかを知ることですか?

車を49MPHに制限する必要があるのはなぜですか?製造業者は、それが80MPHまで高速で運転できると述べました-あなたがあなたの車を高速で運転したいので、あなたはそれをこの速度にしたいのです-いまいましい過熱の問題がなければ。

あなたが買った車も本当に、本当に高価でした。あなたはそのお金を無駄にしないように、各エンジンシリンダーは最大限に利用される必要があります!

SQL ServerによるCPUへのアクセスを人為的に制限することで、パフォーマンスが失われます。CPUをOSで使用できるようにすることで、パフォーマンスの問題を一時的に解決した可能性がありますが、実際の質問には答えていません。SQLServerがCPUを100%使用しているのはなぜですか。

私のアドバイスは次のとおりです。

本当の問題が何であるかを調べ、それを修正します。実質的にクラッジであるもので問題をカバーしないでください。問題はWILL再び現れると、サーバの負荷が自然に成長とともに増加したときにラインの下の顔であなたをピシャリ。

一時的な修正として、リソースガバナーを使用して、実際の問題が見つかるまで、使用されるCPUを減らすことができます


11

Erik Darlingは、質問のコメントでWSRMを使用しない最大の実用的な理由について述べています。

...他のプロセスでのCPU使用の相互制限はありません。SQL Serverはこれらの2つのコアを使用しない場合がありますが、他のものがSQL Serverが使用している他の30を使用する場合があります。本当に、それはくだらないことです。

これで問題が解決した場合は、それを使用してください。私たちはすべて忙しいので、特定の問題に費やす時間は限られています。理想的なのソリューションは、ユーザーが目立ち問題(彼のジョージカバーのポイントにCPUを運転している根本的なクエリ/問題解決するだろう優秀な答えを)。

エリックは続けて言う

さらに、SQL Serverライセンスを支払います。

ビジネスの観点からは、これはおそらくWSRM契約の最悪の部分です。明示的に使用されていない2つのコアに対してコアごとのライセンスを支払うことになります。これを書いている時点では、それは(標準とエンタープライズに応じて)テーブルに残っている$ 3kまたは$ 14,000です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.