LinuxサーバにおいてLoadaverageが50以上、つまりサーバが非常に重い状態にあるとします。あなたはどこから原因を調査し、どのようにして解決しますか?(サーバを軽くしますか?、解決しましたか?、参考になるページのURLはありますか?(複数URLがある場合のみ回答可能))

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/12/03 12:05:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:KoshianX No.2

回答回数20ベストアンサー獲得回数2

ポイント31pt

Load Average 50以上でなおかつまだ動作しているというのは、LinuxにおいてはCPU負荷よりディスクIO負荷でしょうね。実際にそういう経験もあります。

それはどこかのプロセスがファイルを常に読み書きしてる事を表しますから、まずそれを探します。とはいってもこんな状態だとtopが立ち上がるまで何分もかかったりするので、原因不明の場合は大変です。外部からのアクセスが原因だとわかってるなら、一度ネットワークを遮断するのもいいでしょう。

もっとも、こんなに派手にリソースを使うアプリケーションなんて、そのホストを動かしてる人にはすぐピンと来るでしょうから、そのプログラムを一度落してしまうのが早いかと思います。

そして一定以上のディスクアクセスをしないように、設定を見直すなりして再起動、ですね。

例えばウェブサービスの場合なら、apacheのMaxClientsを低くする。そして負荷がかかるCGIなりなんなりを調査します。ファイルを配布してる場合なら、mod_limitipconn で並行ダウンロードをしてるユーザーを撲滅するだけで、相当負荷が下がります。

接続数/帯域制限で無法なダウンローダを撃退(4/4) − @IT

しかし、一番の解決はハードウェアを更新する事かもしれません。それでも足りなければクラスタリングやDBのレプリケーションなどを駆使して負荷を下げることになると思います。

http://www.thinkit.co.jp/free/article/0610/1/6/

http://www.linux.or.jp/JF/JFdocs/openMosix-HOWTO/

などを参照してください。

その他の回答3件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント28pt

http://www.atmarkit.co.jp/flinux/rensai/root07/root07b.html

とりあえず、top や free でCPU使用率とメモリ使用量を調べるところから。

一時的な対処であれば該当プロセスを kill もしくは再起動。

解決方法は原因しだいなのでなんともいえない。

Web サーバーであれば CGI 等のアプリケーションの設計見直しや、各種パラメーターの見直し、メモリの増設等で解決する場合が多い。


ただし、Loadaverageが50以上というのは実際にはほとんど動いていない状態で確認する事すら難しいでしょう。

どちらかというとパラメーターの読み違いを疑います。

http://knowledge.livedoor.com/7776

id:KoshianX No.2

回答回数20ベストアンサー獲得回数2ここでベストアンサー

ポイント31pt

Load Average 50以上でなおかつまだ動作しているというのは、LinuxにおいてはCPU負荷よりディスクIO負荷でしょうね。実際にそういう経験もあります。

それはどこかのプロセスがファイルを常に読み書きしてる事を表しますから、まずそれを探します。とはいってもこんな状態だとtopが立ち上がるまで何分もかかったりするので、原因不明の場合は大変です。外部からのアクセスが原因だとわかってるなら、一度ネットワークを遮断するのもいいでしょう。

もっとも、こんなに派手にリソースを使うアプリケーションなんて、そのホストを動かしてる人にはすぐピンと来るでしょうから、そのプログラムを一度落してしまうのが早いかと思います。

そして一定以上のディスクアクセスをしないように、設定を見直すなりして再起動、ですね。

例えばウェブサービスの場合なら、apacheのMaxClientsを低くする。そして負荷がかかるCGIなりなんなりを調査します。ファイルを配布してる場合なら、mod_limitipconn で並行ダウンロードをしてるユーザーを撲滅するだけで、相当負荷が下がります。

接続数/帯域制限で無法なダウンローダを撃退(4/4) − @IT

しかし、一番の解決はハードウェアを更新する事かもしれません。それでも足りなければクラスタリングやDBのレプリケーションなどを駆使して負荷を下げることになると思います。

http://www.thinkit.co.jp/free/article/0610/1/6/

http://www.linux.or.jp/JF/JFdocs/openMosix-HOWTO/

などを参照してください。

id:hamster009 No.3

回答回数3431ベストアンサー獲得回数50

topですね。

id:qwenty

禁止リスト追加と・・・。

2006/12/03 12:03:11
id:jestersera No.4

回答回数16ベストアンサー獲得回数1

ポイント31pt

CPU使用率(ロードアベレージとは別もの)を見てみると何かわかるかもしれません。 ロードアベレージが上がっていてもCPU使用率が100%になっていなければ私の経験上ではほとんどディスクI/Oです。

Webアプリケーション自体が原因ではなかったこともあります。

その時はメーリングリストエンジン(Mailman)でした。 メーリングリストの書庫を作成しないように設定したら嘘のように軽くなりました( ロードアベレージ20から0.2以下へ)

また、Webサーバーのプロセス数やKeepAliveの値を調整することも非常に効果あります。極端な値にすることでデータベースの負荷を下げたり処理待ちの状態を解消できます。このへんはGIGAZINEの

記事が参考になると思います。

パフォーマンスチューニングを行う上でポイントとなるのは定期的なパフォーマンスのモニタリングです。過去の指標があれば他のパフォーマンスデータとの相関から何処が原因なのかすぐにわかるようになります。今からでも遅くないので(1日分のデータがあれば十分)SNMPやsystatで取得してみてはいかがでしょうか。

以下、参考になるURLです。

Web+DB PressのVol.34の「性能カイゼン大作戦」という特集は非常に参考になりました。

http://www.gihyo.co.jp/magazines/wdpress/archive/Vol34

GIGAZINEのLoadAvarageを「27」から「2」へ下げた方法

http://gigazine.net/index.php?/news/comments/20060601_loadavarag...

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません