最近、そのうちのひとつのサイト(OpenPNEを使ったSNS)が、何かしらの理由で突然重くなってしまい、load averageが20以上まで上がり、サーバーにアクセスできない状況になることが多々あります。(データセンターに連絡してリブートしてもらっています)
0.こういった、負荷が上がりSSHでの接続さえもできなくなってしまう状況のことは何というのでしょうか。
1.重くなる理由が把握できていません。
(ただし負荷のかかるサイトを停止している間は問題ないので、そこに問題があることは把握できました)
いきなりload avarageがうなぎのぼりになり、一気に重くなり、サーバーが止まります。
アクセス数が最近増えたわけではなく、むしろ以前と比べて減ったのに、サーバーが落ちます。
何から調査していけば良いのかサッパリわかりません。
どのあたりから手をつければ良いのでしょうか。
2.負荷のかかるサイトは止まってしまってもやむを得ないのですが、他のサイトに影響を与えたくありません。
サーバーを分離する以外に何か方法はないのでしょうか。
0.特に名前はない。というか個々の症状は名前はあるが実際にどれであるかを判別するのは難しい。
完全に停止していれば「ハングアップ」だが、そうかどうかの判別はリモートからでは無理。
大抵の場合高負荷であってもある程度時間がたてば(数時間単位の可能性もある)復帰できるのでこの場合そうかどうかは判定できない。
あえて言うならば、「高負荷状態」または「サーバーダウン」
1.ロードアベレージのほか、各プロセスのCPU使用量・メモリ使用量・ディスクアクセス・ネットワーク使用帯域等の基本情報を(通常時も含めてモニタリングする)
一般的には SNMP を使用することが多い。
http://www.atmarkit.co.jp/fnetwork/rensai/snmp01/01.html
あとアクセスできなくなった前後を中心に各種ログ(/var/log以下のファイル)をチェックする。コンソールにエラーが出ている場合もあるので業者にリブートしてもらう前に確認してもらう必要があるかもしれない。
2.原因が分からない限りは難しい。
とくに OpenPNE であれば PHPモジュールを使っていると思われる。
この場合 Apache 全体でしか制限がかけられないので事実上同一サーバー上のほかの VirtualHost にも影響はでる。
現在提示されている情報からでは該当のサイトが根本的な原因かも判別は難しい。
あざーっす!
ここは人力説教サイトはてなでしたっけ?
原因追求が一番難しいですね。
DISK IOの値が高い場合にメモリを消費しすぎでSWAPを利用し、そのため、全てのレスポンスが悪くなり、高負荷が高負荷を呼ぶ場合があると思います。
SQLのアクセスが頻繁でも同じようなことになりますね。
PHPの処理が重いと判断できる場合はアクセラレータなんかをいれて回避する方法もあります。
なんにせよ、落ちる寸前のログをしっかり見ないと、特定はできません。
ありがとうございます!
システム状態のモニタリングですが、sysstat (sar) というツールもあります。
お使いのサーバーにパッケージがインストール済みかもしれませんね。
調べてみてはいかがでしょうか。
yes.
webminの中に入っていました。
なかなか素敵です。
すみません、専用です。
専用サーバー内で、バーチャルドメインを利用し、複数サイトを同居させてます。