○やりたいこと
サーバの性能不足を説明し、サーバの買い替えを行いたい。
しかし、夜間のWEBサーバのCPU、DISK、メモリの負荷が大きくない(100%が連続しない)ので、性能不足とも言えないため、他に調査すべきパフォーマンスカウンタを教えてください。
○構成
DBサーバ(windows2000,oracle8i),WEBサーバ(windows2000,iis5.0)共に1台構成。
言語はASPでミドルウェアにOO4Oを使用。
○調べたこと
・各サーバのパフォーマンスカウンタでCPU、DISK、メモリの負荷を調査。しかし、使用率が100%が連続しない(大体50%前後)し、使えるメモリ(averable bytes)も60%以上ある。
・IISが停止する時間帯に、windows update,ウィルススキャン、バックアップは行っていない。
・oracleのstatspackを見ると、diskのリードタイムが長いので、フルテーブルスキャンが多発している。しかし、そもそもリクエストが少ないので、IISがネックになりDBサーバにリクエストが来ていないと考えている。つまり、原因はWEBサーバ(IIS)にありそうだ。
・WEBサーバのパフォーマンスカウンタでcurrent sessionは常時100程度。
・セッションタイムアウトは90分。
状況を見る限り、一概に性能を上げれば改善できるかどうか怪しい事と、問題の本質をつかんでから出ないとどの部分にお金をかけるかが判断できないのでもう少し調査をするべきだと思います。
CPU使用率が上がりきっていないことから、メモリとディスクを疑うところから始めてはどうでしょうか?
http://www.voice-com.net/news/winpfm/index.html
さしあたり、
・Memory\Page/sec
・PhysicalDisk\% Read/sec
・PhysicalDisk\% Writes/sec
・PhysicalDisk\%Avg Disk Queue Length
あたりを監視すべきでしょう。
一般論としては「フルテーブルスキャンが多発」というのは絶対に避けるべき状況です。
ほとんどの場合クエリの見直し、インデックスの作成によって回避でき、効果は大きいです。
セッション周りについてはユーザー数が分からないのでなんともいえないですが、セッション保持にコストがかかっているようであれば、タイムアウトを短くしてみるのも手かもしれません。
あくまで書かれていることからの推測ですがフルテーブルスキャンの多発により他のI/Oも引きずられて遅くなっているようにも見えます。
IISのログおよびイベントログは確認されたでしょうか?
停止する時間帯にエラーが出ていれば原因を調査する手がかりになると思います。
以下、ご参考になれば。
ウイルス対策ソフトウェアが原因で IIS が突然停止することがある
http://support.microsoft.com/kb/821749/ja
Code Red による深刻な問題に対する防護策と対処方法についての説明
http://www.microsoft.com/japan/technet/security/alerts/codeptch....
イベントログには、エラーが載っていませんでした。IISログには、HTTP500が数十個ほど載っていました。WEBサーバの処理が追いつかなくて、HTTP500を返していると思われますが、CPU、DISK、メモリは異常値というほどでもありません。
「勤怠管理システム」そのものの性能は問題ないんですか。
IIS(Webサーバ)の処理が追いつかないのであれば、そもそもHTTP500自体を返せないはずです。
500を返しているということは、IISは処理を請け負ってて、「勤怠管理システム」がとまっているという事なのでは。
勤怠管理システムは某ベンダー製なのですが、何故か保守に入っておらず、勤怠管理システムそのものの性能の問題があるかどうかはわかりません。そのため、パフォーマンスカウンタやstatspackで調査しているという状況です。
本日、ヘルプを見ながら関係のありそうなカウンタを仕掛けて、推移を見ました。Disk queueは2以上ある場合もありましたので、ネックの可能性があります。また、ユーザ数は100程度です。タイムアウトは確かに意味もなく長いので10分程度に変更してみます。