Windowsでは、パフォーマンスモニタを使ってSql Serverの一般的な指標を監視します。


上の文章でwinの性能モニターはデータベースの性能を監視するために必要なツールです。これからはよくある監視指標を紹介します。実はディスク、cpu、メモリなどのハードウェアの運行指標だけでなく、データベース自体のロックやユーザーの接続数、また自分の業務によって決められた注意すべきパラメータ指標を紹介します。
1.SQL Server Buffer:Buffer Cache Hit Ratio
これはメモリが不足しているかどうかを調べるためのパラメータです。SQL Server BufferにおけるカウンタBuffer Cache Hit Ratioは、ディスク内でデータを取得する周波数ではなく、キャッシュからデータを取得するために使用される。sqlserverは、いくつかの照会したデータをメモリにキャッシュして、後で再度照会して使用することができます。つの照会Aが入ったら、データベースはこのsqlをコンパイルして、どれらのデータが必要かを見てみます。そして、実行計画はまずメモリの中に行って、今回のクエリに必要なデータがあるかどうかを確認します。もしこの同じsqlが先ほど実行されましたか?それともこのテーブルのデータはすでにメモリに保存されていますが、メモリの中にデータがありません。それはメモリ不足によるメモリ押し出しの原因となり、キャッシュデータをハードディスクに書き込み、またはリリースして、データベースの他の要求を提供して使用することができます。一般にoltpのシステムでは、この値は少なくとも90%以上で、理想値は99%です。この値が90%以下なら、メモリを追加するべきです。
2.メモリ:Pages/sec
これもメモリ不足を監視する重要なパラメータです。このカウンタは、一秒ごとにメモリとディスクの間で交換されるページ数を記録しています。頻繁に画面を交換すると、より多くのioが消耗され、サーバーの性能に影響を与えます。例えば、スーパーの棚の上には、新しく入った商品がいっぱい並べられています。aを買いにスーパーに行きたい時は、直接に棚に持って行けばいいです。便利です。お客さんがスーパーに入って、一周回ったら、古い商品dが見つからないと言っています。このdを買いたいです。そしてスタッフが倉庫に行って商品dを棚に出して次のお客さんに買いに来てください。しかし、棚がいっぱいになりました。どうすればいいですか?長い間誰も聞いていないaを倉庫に置いて、空いているところにdを置くしかないですが、今度はもう一人のお客さんが来て、aを買いたいという意向があります。スタッフはもう一度aを取り出して棚のdを換えなければなりません。実はメモリはこの棚です。ハードディスクは倉庫です。棚が小さすぎて、棚の商品を頻繁に交換して正常な運営を提供するしかなくて、繰り返し運搬することによって生じるioオーバーヘッドを減らしたいです。もっと大きな棚に変えて需要を満たすしかないです。
サーバーでsqlserverだけ走るなら、この指標の理想的な範囲は0-20の間にあるはずです。たまに20を超えると影響が大きくないです。この値が頻繁に20を超えるなら、このサーバーはメモリを追加する必要があるかもしれません。
もちろん、この指標は前の指標Buffer Cache Hit Ratioに合わせて見てください。もし前の指標が99%以上のバッファリングをしていたら、この期間中にあなたのページ交換はずっと20以上になります。メモリ不足だけでなく、他のプログラムがシステムメモリを占有しています。
3.メモリ:Available Bytes
もう一つのメモリ状況を監視するカウンタはこれです。この値は最低でも5 Mより大きくなければなりません。sqlserverは常に5-10 mの自由メモリを維持して分配する必要があります。この値が5 m以下の場合、sqlserverはメモリ不足のために性能ボトルネックが発生する可能性があります。
4.Physical Disk:%Disk Time
このカウンタは、ディスク全体の忙しさ(ディスクアレイ全体または物理ディスク全体の忙しさ)を記録しています。理論的にはこの値は55%を下回るはずです。55%を超えると、このサーバーにはioボトルネックがある可能性があります。
たまにしかないなら、心配しなくてもいいですが、この時点に対応して、データベースで何をやっていますか?どの語句を実行していますか?対応して最適化してください。
5.Physical Disk:Avg.Disk Que Length
これは比較的重要なディスクioの状況を調べる指標である。理論上の各物理ディスクの値は2を超えるべきではない。もちろん、この値は計算が必要です。例えば、4つの物理ディスクでライヴd 10を作った場合、ディスクのキューの平均値は10で、各ディスクのキューの値は10/4=2.5で、このディスクアレイにi/oボトルネックが存在していると言えます。これは以前のdiskytimeの指標と同じです。たまに心配する必要はありません。もし長い時間があれば、ディスクのio性能問題を解決することに着手します。
6.Processor:%Processor Time
これはcpuの状況を監視する指標です。これはcpuの利用率を観察する鍵となるパラメータです。Processor Timeカウンタの値が80%を超え続けたら、cpuにボトルネック問題があると説明します。たまにしか現れないなら、この時間は特にcpuの検索を消費するかもしれません。次のこの時間に来たらsqlを捕まえて最適化してみてもいいです。ある時点でcpuがずっと高くなったら、よくあることは、1.突然の高合併2.インデックスの再構築3.突然、よく使われているデータ量が非常に大きいインデックスが失効しました。4.デッドロック5.その他多くあります。まず問題点を見つけて処理しています。
7.System:Processor Que Length
この指標はdisk queue lengthに似ています。単一のcpuを計算します。単一のcpuは2 uのマシンのような2を超えてはいけません。この値は4を超えるべきではありません。もし1つの監視期間で持続的に4を超えると、cpuボトルネックが出現する可能性があります。
基本的によく使われているのはこんなに多くて、あなたのSqlserverの性能を測定できるカウンタがたくさんあります。興味があれば、自分で百度でも大丈夫です。