web-dev-qa-db-ja.com

サーバーがアイドル状態のように見える間、本当に高い負荷の読み取り値

このような問題が発生した場合は、サーバーの報告された負荷が非常に高いのではないかと思いましたが、どのパラメーターもビジーであることを示しているようには見えません。もう一度確認する必要がありますが、これは乗客を始めてからだと思います。私は専用の仮想ホストを使用しています。

これが発生する理由のヒントや、この負荷値をデバッグする方法のアイデアはありますか?これが私の一番の読み物です。必要に応じて他の情報を提供できます。

top - 13:34:38 up 122 days, 19:15,  1 user,  load average: 2.44, 2.02, 1.85
Tasks:  51 total,   4 running,  47 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.7%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1048576k total,   797196k used,   251380k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached
2
HouseMD

正しい答え(そして私の質問の鍵)が仮想専用サーバーを使用していることが判明したので、あなたの入力に感謝します。サーバーには0.6のプロセッサユニットがありました(つまり、2Ghz Xeonのうち1.2Ghz)。これにより、トップおよびサーバーのヘルス監視ソフトウェアで奇妙な読み取り値が発生しました(CPU使用率グラフで今回は「盗まれた」と呼ばれる新しい遺物rpm)。フルコアVPSに更新しましたが、負荷は適切な値〜0.07まで低下しています。

2
HouseMD

高負荷でCPU使用率が低い場合は、他の何かがボトルネックになっていることを示しています。 (Janneが言ったように、負荷平均2は特に高くはありませんが、システムが何をしているのかを深く理解することは悪い考えではありません。)

ディスクアクセスは、CPU使用率が低く、平均負荷が高い最も一般的な理由です。インストールしたものに応じて、vmstatiostat、またはdstatでディスク使用量に関する統計を確認できます。

比較のために、私のかなり忙しいWebサーバーの1つは、vmstatのbi列(ブロックの読み込み)を30秒あたり100で表示し、bo列(ブロックの書き込み)を30秒あたり3000として表示しています。そのサーバーの平均負荷は約1です。

もう1つの考えられる理由は、ほとんど作業を行っていない多数のプロセスです。私が見るほとんどのサーバーには、100から200のプロセスがあります。サーバーに500または1000がある場合、それは高い負荷平均を引き起こす可能性があります。

繰り返しになりますが、比較のために、最近、メールキューに多数の電子メールがあり、電子メールを送信するために約1,000のプロセスが生成されました。そのため、平均負荷が約70に達し、システムの使用が困難になりました。

2
Ladadadada

負荷平均2は実際には高くはなく、実際には低くなっています。

どこかで実際のパフォーマンスの問題が発生していますか?

0

私は通常、1つまたは2つのプロセスが「D」状態に入るときにこれを確認します。これは、彼らが何かからのI/Oを待っていることを意味します。これは、タイムアウトまたは類似のNFS共有である可能性があります。これらがこのストレージデバイスで待機している2つのプロセスだけである場合、IOWAIT状態の%CPUはそれほど上昇しません。

明確にするために、2.44の負荷平均は、システムにあるCPUスレッドの数に応じて高くなることも低くなることもあります。ハイパースレッディングを備えたデュアルコアXeonを使用している場合、4つのCPUスレッドがあります。最大4.0の負荷平均は、システムがフルキャパシティー以下であることを意味します。このようなシステムでの平均負荷が4.0を超える場合は、CPUスレッドよりも実行キューに多くのプロセスがあることを意味します。

0
JakePaulus