- ベストアンサー
LinuxでWebサーバーの障害が多発している理由とは
- LinuxでWebサーバーを設計している際に、CPU使用率が100%になりWebページが表示されない問題が発生しています。
- Webサーバーの障害が数日ごとに繰り返され、メモリが不足していることが原因であることがわかりました。
- アクセス量は1日1万5千件程度であり、メモリを増やすだけでは解決しない可能性があります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
推測ならいくらでもあります。 たとえば php.ini で使用可能にしているメモリの量が多すぎる = php で使うアプリのメモリが多すぎる とか 「コネクションプール = pgpool 等」なんかを使っていて、 これらのコネクションが持続的かつ、減らす条件がないとか。 これらは、推測でしかなく、ここではアドバイスですが 現実的に障害を切り分けるなら まずは「アプリを作った人」に聞きたいですね。 「サーバの設計がおかしい」と言える以上、提示できる情報を見せるか、 逆に相手の想定しているサーバの環境等を提示してもらうなりして、 設定の内容を確認してはどうですか? 結果的にせよアプリは正常であると言っている以上、正常動作する環境を 教えていただかないと進みません。 正常動作と異常動作を比較しましょう。 正直、情報が少ないのと、条件が不明すぎるので「サーバの設計」と「アプリの設計」の どちらが「おかしい」と言われても仕方の無い状況です。
その他の回答 (3)
- wingstar
- ベストアンサー率37% (102/275)
> <環境> > CentOS releae 5.4(Final) > 物理メモリ:1GB > スワップ領域:500MB スワップは、物理メモリの2倍はほしいところですね。 あとは、うちが原因じゃない!という根拠を示す(示してもらう)ことが重要です。 根拠に乏しければ、そこを追求すれば良いですし。
補足
wingstarさん、ありがとうございます。 昨日、スワップ領域を2GBまで広げております。 しかし、コンソールに「unable to find swap-space signature」というメッセージが出てきまして、 どうやらスワップの設定がうまくいっていないようです。 解決策はネットにいくつかページがありましたので、今日やってみます。
- SaKaKashi
- ベストアンサー率24% (755/3136)
物理メモリ1GBが少ないのでは。最大搭載まで増設しましょう。 リクエストの秒当たりの最大数はどのくらいですか? ページ間の情報引き継ぎはありますか?
補足
コメントありがとうございます。 増設は検討してみます(事情により、私の一存では決められないのです)。 秒当たりのリクエスト数は最大で5,6くらいだと思います。 ページ間の情報引き継ぎというのは、formで情報を入力して次のページへ進んだりするもののことでしょうか? それでしたら、あります。
- t_ohta
- ベストアンサー率38% (5253/13738)
topコマンドなどで、どのプロセスがメモリを消費してるのか調べてみてはいかがですか? また、WebサーバではDBを参照するようなWebアプリが動いているんですよね? そのアプリがメモリリークしてるという事がないか調査してみるといいと思います。
補足
メモリを消費しているプロセスはhttpdです。これは間違いありません。 >WebサーバではDBを参照するようなWebアプリが動いているんですよね? おっしゃる通りです。説明不足でした。 メモリリークについて調べられたらいいのですが、アプリは他人が作成したものなのです。 phpで書かれているのですが、私自身がphpについて疎く、どう手をつけたら良いかわからない状況です。。。 作った人は「サーバの設計に問題がある」と言ってます。 となると、解決策はメモリの増設になるでしょうか。
お礼
athanasiusさん、ごもっともです。 あいまいな内容の質問にこたえていただき、ありがとうございます。 http://mitsukuni.org/blog/2009/01/16/php%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E5%89%B2%E5%BD%93%E9%87%8F%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/ 上記サイトを参考に、PHPの使用する最大メモリ量を計算してみると、 サーバーの物理メモリとスワップ領域の合計サイズ(1.5GB)を上回っていることがわかりました。 ただ今、スワップ領域を追加し、様子を見ているところです。 これからアプリの作成者にも連絡をとり、原因を追究しようと思います。 皆様ありがとうございました。