• 締切済み

CPU率が低いのにLoad Averageが高い

某プロバイダのVPSにてサイトを運用しています。 OSはFreeBSD 4.7です。 最近、突然サイトが重くなることがあり、topで状態を確認しますと、 一番CPU使用率が高いプロセスがmysqldで、5%前後にもかかわらず、 Load Averageが2~4、ひどいときは5を超える時があります。 この状態は短いときは15分程度、長いときは2時間ほど続きますが、 何もしなくても勝手に収束します。 topには表示されないプロセスがCPUを占有しているのでしょうか? VPSだと、同じサーバを共用しているユーザの負荷を影響したりするのでしょうか? この質問はプロバイダの技術担当にしてみましたが明確な解答をいただけませんでした。 負荷の原因となっているプロセスを特定したいのですが、 他に方法がありましたら教えていただけると助かります。

みんなの回答

  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.1

load average はシステムの負荷を示す数値ですが、必ずしもCPUの負荷を示すとは限りません。 "man w" とすると、以下のような文言が見えると思います。 "load average numbers give the number of jobs in the run queue averaged over 1, 5 and 15 minutes." つまり、処理の待ち行列を示すわけで、プロセスが何らかの処理待ちになっている場合はCPU負荷が低いのにload averageが高い、という状況になる可能性が考えられます。 一番考えられるのはディスクアクセスなので、当該時間帯にディスクアクセスが増えていないか、確認してみるのがよいのではないでしょうか。

関連するQ&A

  • サイトが重く、load averageが高い

    サイトが重く感じたので、topコマンドで見てみるとload averageが7~10をいったりきたりと高い値でした。 load average: 8.57, 7.08, 10.73 Tasks: 114 total, 1 running, 113 sleeping, 0 stopped, 0 zombie Cpu(s): 80.2%us, 19.8%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 3368216k total, 2805768k used, 562448k free, 298348k buffers Swap: 2048276k total, 80k used, 2048196k free, 1977940k cached また、mysqldの%CPUが200近くまでなっており異常に突出していました。 mysql 15 0 164m 39m 4096 S 196.7 1.2 221:52.29 mysqld これはMYSQLへの負荷が高いのかなと思い、 show full processlist をみてみたものの、よくわかりませんでした。 そこでslow queryログを取ろうと思い、3秒以上で出力するように、my.cnfなどに設定したものの、slow queryログファイル自体がなかなか作成されません。 3秒以上掛かるクエリがないのか、それとも設定が間違っているのかは分かりません・・・ また、その際にmysqldをリスタートしたものの、load averageやCPUなどはほとんど変わりませんでした。 topでみたときのmysqldの%CPUが200近いのが気になって仕方ないのですが、他にどこをみたらいいでしょうか。 また、どのような対処法などありますでしょうか。 どうぞよろしくお願い致します。

  • ロードアベレージについて

    topコマンドでロードアベレージが6以上あり、高いなと思えばsendmailのプロセスが4つ程ありました。しばらくすると、sendmailのプロセスが無くなり、ロードアベレージが1以下になりました。 これは正常の範囲でしょうか? それぞれのプロセスのCPUのウエイトが10パーセント台なので sendmailプロセスはそんなに重いものなのでしょうか? ロードアベレージの正しい捉え方を教えてほしいです。

  • ロードアベレージが高いのですが、CPUもディスクIOも低く、これはどう

    ロードアベレージが高いのですが、CPUもディスクIOも低く、これはどういったことが原因なんだろうと悩んでいます。 topやsar等の結果は以下の感じです。 VPSサーバーでapache mysql phpが動いていて、mysqlはほとんど使っていなくて、apacheが原因ということはわかっています。 apacheのプロセスがたくさん作られています。PV等からもうスペック不足だなとは思っていて近々サーバーを引っ越すのですが、 これの原因をつきとめてすっきりさせたいところです。http.confをいじれば解決する問題なのでしょうか? 本やブログなどを読んでもロードアベレージの原因はCPUかディスクIOであると書かれていてそう思っていたんですが、この状態だと納得できません。よろしくお願いします。 load average: 10.78, 18.97, 20.37 Cpu(s): 2.9%us, 1.8%sy, 0.0%ni, 95.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1572864k total, 587936k used, 984928k free, 0k buffers 06:20:01 PM CPU %user %nice %system %iowait %steal %idle 06:30:01 PM all  5.53 0.00 3.37 0.01   0.00 91.10 06:40:01 PM all   3.40 0.00 2.12 0.00   0.00 94.48 03:20:01 PM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad 06:40:01 PM 776820 796044    50.61 0    0   0    0    0.00    0 06:50:01 PM 709144 863720    54.91 0    0   0    0    0.00    0 07:00:01 PM 914668 658196   41.85 0   0    0   0    0.00    0

  • CPU Load Average の目安

    つい先日、サーバである作業をしていましたら その間 Apache が激重になりました。 MRTG で CPU の Load Average を確認したところ 5 分置きの計測で MAX 7% の使用率でした。(RAM 512MB) 通常は 1% を越える事もないと思いますが、 7% の使用率は Apache が激重になるくらいの負荷なのでしょうか? 何パーセントを越えるとマズイとか、そういう目安がイマイチ解っておりません。 アドバイスを頂けますと幸いです。 よろしくお願いします。

  • ユーザごとにCPUの占有率を制限

    題名の通りですが、たとえば、ユーザが利用できるCPUの利用率を最大50%までしか使えないようにしたい場合、どのようにすればよいですか? というのも、CPUの負荷下におけるプロセスの速度評価を行うために、無限ループをするプロセスを別に走らせて行っていたのですが、この負荷下で、評価したいプロセスを200回以上連続実行すると、200回全体の合計実行時間に、負荷がかかったような形跡がほとんどなくなってしまうという謎の現象が起こってしまったからです。 なので、ユーザが利用できるCPU占有率を一定にできないのかなと思い、質問してみました。 ulimitではできなさそうですよね。

  • CPU使用率

    CPU使用率がアイドル状態のはずにもかかわらず30%程度占有しています。 タスクマネージャーでプロセスを確認したところ、特に目立った項目がありません。 スパイウェア・ウイルスのチェックはしています。 CPUはCore2Duo 2.13Ghzですが、30%もの使用率というのは普通でしょうか。

  • プロセスが使用するCPU使用率を下げる設定は?

    非常に負荷の高いプログラムを実行している時に、CPU使用率が100%になり、高負荷になることが気になっていまして、CPU使用率やマシン負荷が軽減できないか、方法などを模索しています。 少し処理時間が掛かっても良いので、負荷を減らし時間で解決できればと考えています。 niceコマンド、priocntlコマンド(root権限で実行)で、プロセスの優先度の設定をしつつ、プロセスの実行ができることは分かったのですが、topコマンドでCPU使用率のところを見ると、0% idle状態なのはnice/prioctl未使用時とくらべ、変化はなく、効果の具合がよく分かりませんでした。 また、priocntlはroot権限で実行しないといけないようで、一般ユーザでの実行を考えているので、これもNGかなと思っています。 なにか解決策はありませんでしょうか?ご存じの方がいらっしゃいましたら、教えて頂けませんか。 よろしくお願いします。

  • SYSTEMのCPU使用率が高い

    WINDOWSXP HOME SP1 TrendMicro VirusBuster を使用中ですが、WINDOWSの起動後ずっとSytemのCPU使用率が90%を超えていて何も受け付けない状態になってしまいます タスクマネージャのプロセスの部分で確認してもSystemが300前後のメモリを使用してほぼすべてのCPUリソースを占有してほかのプロセスを起動してもまったくその処理が行われていません なんとかウィルスバスターのスキャンは行ったのですが何も検知されず、AdAwareは途中で処理が止まってしまいます 何らかのスパイウェアが入ってしまっているのでしょうか?

  • 専用サーバーのロードアベレージ、メモリー使用率、スワップについて

    国内の専用サーバーを借りています。 まだ何もサイトを置いていない借りた当初から、ロードアベレージ(というのでしょうか?)が1~2、メモリー使用率が30~50%、スワップが25%程度あるのですが、こんなものなのでしょうか? 同様の数値を確認できる海外の共有サーバーを借りているのですが、スワップはほとんど0か0に近いですし、メモリー使用率も30%以下です。 専用サーバーのスペックは、Intel(R) Xeon(TM) 1.66Ghz×2、メモリーが1GBです。 確かに海外の共有サーバーはCPUの数もメモリーも大きいです。 ただ、何も使っていないのにどうしてスワップが発生のだろうという気がします。 スワップの意味をよく理解していないのかもしれませんが。 よろしくお願いします。

  • あるSNSに接続するとPCのCPU使用率が上がります。

    質問です。 あるSNSにアクセスし、ログインするとPCのCPU使用率がグンと上がり、 SNSへアクセスしているブラウザのプロセスが50%以上を巡航します。 違う場所から接続しても現象は同じです。 SNS自体はopenPNEで作られているのですが、 原因としては何が考えられるでしょうか? サーバーにログインしtopコマンドで確認するとmysqldプロセスが かなり長い時間稼動していること以外は何も暴走したりしていません。 httpdのerror_logを確認してもこれといったエラーは出ていません。 どんな小さな情報でも結構なので(指名手配みたいですが^^;) 原因について教えてください。

    • ベストアンサー
    • PHP