web-dev-qa-db-ja.com

LinuxでのVMwareでのSQLServerのパフォーマンスの向上

小さな会社(3ユーザー)にLinuxサーバーがあり、ドメインサーバーとして機能し、VMwareで2つのVMを実行しています。1つはSQL Server 2000を搭載し、もう1つはSQL Server2005を搭載しています。いずれの場合もWin2kで実行されています。各SQLServerには、小さいながらも重要なデータベースがいくつかあります。

私が知る限り、Linuxサーバーはその寿命を完全に退屈に費やしています。 2GBのメモリがありますが、VMを使用しても、約512MBを超えることはなく、残りはキャッシュに割り当てられます。

しかし、VMパフォーマンスは悪臭を放ちます!データベースは、専用の(ただし古い)マシンから移動する前よりも低速です。データベースがしばらく使用されていない場合は、コーヒーを飲むことができます。再び応答を開始する前に。

パフォーマンスを向上させるために何ができますか?

7
Brad Richards

私も同様の問題を抱えていました。仮想ディスクはパフォーマンスを低下させます。できるだけ多くのデータをメモリに取り込むようにしてください。最終的に、ディスクを集中的に使用するVMを独自のRAIDスタックに配置しました。

OITのほとんどの人は、この理由から、ディスクを集中的に使用するアプリケーションをVMに入れることを推奨していません。また、使用しているVMWare製品も指定していません。ESXiは少し前に無料でリリースされました。 、それを使用していない場合は、試してみることをお勧めします。必要なパフォーマンスの最後のビットを取得するのに役立つ場合があります。

5
Clint Davis

SQLServerはIOマシン期間です。

SQL Serverはメモリをキャッシュとして使用するため、読み取りパフォーマンスに関しては、メモリに格納できる量が多いほど優れています。また、ハイパーバイザーベースのVMソリューションを調べて、物理マシンにできるだけ近づけるようにします。

Vdiskをスピンドルの異なるセットに分離することも役立ちます。

2
Wes Brown

パフォーマンスの問題はCPU、ディスク、またはネットワークにバインドされているように見えますか?つまり、1回の高価な低速クエリ中にディスクスラッシングまたはCPUが最大になっているのでしょうか、それともリモートクエリの場合は小さくても遅いのでしょうか。

仮想ディスクはどのように割り当てられますか?それらを最適化してみましたか?

VM専用のメモリはどれくらいですか?ゲストWin2ksのメモリ不足の問題はありますか?

SQLサーバーがデータベース全体をキャッシュするのに十分なRAMがあり、それを可能にするのに十分な量を割り当てるのが現実的でしょうか?VM内からのディスクアクセスは非常に遅くなる可能性があります。

両方のSQLサーバーインストールを同じVMに移動することは実用的でしょうか?これにより、それらの間のリソース競合が減少します。

1
Chris Smith

ディスクIOに焦点を当てる必要があります。 VMインストールが自動拡張に設定されていますか?そうである場合、これが問題の原因です。SQLが自動拡張するように設定されていて、VMが自動拡張すると仮定します)それはディスク割り当てです、あなたはパスslowvilleにいます。

人事のバックオフィスとして機能し、VMWareで900人以上の人に隔週で問題なく給与を生成する給与システムを実行しました。これを行うには、ドライブスペースを事前に割り当て、四半期ごとにVMスライスとVMホストの両方をデフラグします。ディスクの調整を維持することは大いに役立ちます。良好なパフォーマンスを維持するため。

1
David Robbins

データベースがしばらく使用されていない場合は、データベースが再び応答を開始する前にコーヒーを飲むことができます。

DBオプション 自動クローズ を「オン」に設定した可能性がありますか?

1
StanleyJohns