サーバー負荷の増大の原因を見つける方法


12

サーバーに負荷の問題があります。Linuxの経験が多少ありますが、今は考えられません。

問題は、明らかな原因なしに、サーバーの負荷がゆっくりですが着実に増加することです。

サーバーは、6GB RAMを搭載したAMD Athlon(tm)64 X2デュアルコアプロセッサー6000以上です。Linux gir 2.6.26-2-amd64#1 SMP Wed Aug 19 22:33:18 UTC 2009 x86_64 GNU / LinuxでDebian Stableを実行しています。

サーバーは基本的にLighttpd、いくつかのFastCGI PHPプロセス、MySQLデータベースを実行します。一般的なWebサーバータスク。

CPUは実際には完全に使い果たされることはなく、メモリは主にバッファとキャッシュに使用されますが、これは問題ありません。さまざまなサービスを再起動して、そのうちの1つが再び負荷を減らすかどうかを確認しようとしましたが、運はありませんでした。

負荷、CPU、およびIOStatを示すグラフィックは次のとおりです。

だから、質問は次のとおりです。何がゆっくりとしかしこれまで以上に負荷を増加させる可能性がありますか?そして、どのように責任があるのか​​を知るにはどうすればよいですか?

更新:言及するのを忘れましたが、サーバーを再起動すると、負荷は0.3から0.6程度に低下し、数週間かけてゆっくりと再び上昇し始めます。


1
投稿した画像は存在しません。まだコピーがある場合は、それらを再度アップロードしてください。
マイケルハンプトン

回答:


6

各ゾンビプロセスは、ロードに1.0を追加します。あなたはゾンビの蓄積を見ているかもしれません。


はい。「プロセス数」グラフ確認してください。
テディ

それが正しければ、入力for N in {1..100} ; do sleep 60 & done ; exec sleep 500は高負荷を引き起こすのに十分なはずです。しかし、そうではありません。このコマンドはゾンビを100個生成しますが、コンピューターの負荷は1未満のままです。
kasperd14年

5

別の質問に答えるには素晴らしいヒントを見つけました。

状態「D」のプロセスを探すと、負荷曲線の「ステップ」に対応して、しばらくハングしているように見える4つのPHPプロセスが示されます。

#> ps aux | awk '$8 ~ /D/  { print $0 }'
wiki      6651  0.0  0.0      0     0 ?        D    Oct04   0:41 [php-cgi]
bugs      6731  0.0  0.0      0     0 ?        D    Oct27   0:14 [php-cgi]
manpages  7536  0.0  0.0      0     0 ?        D    Oct30   0:21 [php5-cgi]
wiki     23847  0.0  0.0      0     0 ?        D    Oct06   1:32 [php-cgi]

これらが問題のようです。これらのプロセスがハングしている間、およびその修正方法を見つける必要があります。みんな、ありがとう。


この答えは私の問題を解決しました。負荷は0.5から350に増加し、上昇し続けました。これは、ゾンビプロセスが削除されたリモートフォルダーを読み取ろうとしたためです。
フィリップデルテイユ

2

私の推測では、サーバーのIOが不足していると思われます。グラフにiotopの統計を追加する必要があるかもしれません

サーバー負荷の要因でもあるアプリケーションごとのIOアクティビティを行うことができるのだろうか

http://rt.wiki.kernel.org/index.php/I/Otop_utility

他のツールはdstatです


IOStatのグラフィックも追加しました。ディスクIOは、負荷が増加しても増加しません。それはあなたが目指していたものですか?
アンドレアスゴーア2009年

ああ、dstatは便利そうです。私はそれについてもう少し読む必要があります。
アンドレアスゴーア2009年

2

I / Oの場合、CPUグラフにiowait(ピンク)が表示されます。


0

この種の問題は、多くの場合、MySQLデータベースとHTTPサーバーが必要とするデータを提供するのに十分に高速ではないハードディスクに起因していました。iostatコマンドを見てください


IOは私には正常に見えます。また、負荷が徐々に増加している理由を説明しません。
アンドレアスゴーア2009年

-1

一般に、サーバーの負荷が高いことは実際には悪いことではありません。それは、あなたが怠けて座っていないことを意味し、そうでなければあなたがそうすることができるよりも少ない。総容量の80%〜90%の負荷(「バースト」ルームを含む)が通常求められています。mpstatとvmstatの出力を確認することをお勧めします。特に、vmstatの最初の2つの数値は、実行キュー内のプロセスに関して、どの程度「バックアップ」されているかについて、より意味のある情報を提供します。vmstat出力の最後の列(「wa」)は、I / Oの完了を待機しているかどうか、および待機している時間を示しています。多くの場合、実行キューサイズとI / O待機時間は相関しています。また、sar(sysstatパッケージから)をチェックしてください。これにより、一定期間にわたって何が起こっているかの詳細なビューが得られます。それが記録するメトリックは非常に徹底的です。

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