• 締切済み

サーバー不具合の根本原因が分からない

10万件ほどの商品DBから商品検索ができるWebサイトを運営しています。 1つのサーバー内で、コミュニティーなどのその他プログラム関連ページを全てMySQLで動かしていたのですが、運用開始から1年半ぐらいして、急にWebへのアクセスの不具合が起こるようになりました。 サーバー管理会社に問い合わせたところ、MySQLに負荷がかかりすぎてエラーが起きているとのことで、サーバーの再起動をしながらだましだまし使っていたのですが、いよいよ不具合がひどくなったので、2ヶ月ほど前に商品検索と一部プログラムをPostgreSQLに移行しました。 動作も順調になり、変更してよかったと思っていたところ、10日ほど前から動作が重くなり始め、日に日に状態が悪化、昨日はとうとうWebサイトが全く表示されなくなってしまいました。 サーバ管理会社に問い合わせたところ、PostgreSQLの処理が重いこと、検索ロボットからのアクセスが集中していることが原因と考えられるとの回答はもらい、暫定的な対処方法を教えてもらって試してはみたのですが、全く効果がありません。また、不具合の際、サーバを再起動しても状況はほとんど改善されませんでした。 仕方がないので現在はPostgreSQLを停止し、サイトだけは表示できるようにしていますが、プログラムのチューニングを行っても根本的な対処になっていないような気がして、また同様の現象が起きる不安があります。 このような、サーバの不具合はよくあることなのでしょうか? また、どのような対処方法があるかをご教示いただければと存じます。 よろしくお願いいたします。

みんなの回答

  • nolix
  • ベストアンサー率19% (110/572)
回答No.3

セマフォやシェアードバフッアをいじつみては如何でしょうか?

rinego
質問者

お礼

お返事ありがとうございます。 結果報告になりますが、あまりにも不具合が続くため、サーバ管理会社とプログラム制作会社になんとか原因を調べてもらいましたところ、PostgreSQLの動作で蓄積されるログファイル?が重くなりすぎ、サーバ全体に悪影響を起こしていることが分かりました。 現在は、定期的にそのファイルを削除することで、問題なく動作するようになりました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

色々と書いてありますが書いてある情報では何もわかりません。(重くなったとかの表現ばかりなので。。) 対処するには原因を特定しなければいけません。 それをまずきちんとやったほうがいいのでは?やみくもにプログラムのチューニングとかやっても。。 どれくらいのアクセスが来ているのか、それは想定内なのか想定外なのか、DBへのアクセスは更新系が多いのか参照系が多いのかとか、サーバのリソースの具合とか色々調べて見てはどうでしょうか? 「重い」とかじゃなくて、数字で見てみてください。 当初の予想よりもアクセス数がはるかに多いのなら、サーバがさばき切れてない可能性もあるのしょうし、そうでもなければプログラム側に問題があるかもしれません。

rinego
質問者

お礼

さっそくのお返事どうもありがとうございました。 アクセス数については想定内なのですが(もっと多いときもありました)、サーバーの詳細分析については、プログラムページの制作運用をお願いしている制作会社のご担当者と相談したいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

MySQLと絞り込めているのであれば、「mMeasure」や「MySQLTuner」を使用してみればチューニングのヒントが得られるかもしれません。またスロークエリログを取ると、問題のあるSQL文が見つかるかもしれません。 可能性としてはそのほかにapacheやメモリ、ディスクなどの問題も大いにあり得ます。もしかしたらログをローテートしていないだけかもしれません。 漠然とした質問内容なので漠然としか答えられませんが、とりあえずMuninやCactiといったツールでリソース監視から始めてはいかがでしょうか。Muninはインストールも簡単ですし、MySQLの状態もある程度表示してくれます。 なおMySQLもPostgreSQLも10万レコード程度でネを上げるようなものではありません。必ずどこかに問題点があるはずです。 (個人的にはこういう状態を解決することのほうが、開発することよりも面白いと感じたりします)

rinego
質問者

お礼

さっそくお返事いただき、どうもありがとうございました。 プログラム部の作成運用は制作会社にお願いしておりますので、さっそく担当の方と相談したいと思います。 Webサイトの運営には、サーバーについての基礎知識が必要ですね…。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • DBサーバとWebサーバの連携について

    お世話になります。 Web,DBサーバを同一サーバ上で動かしていたのですが、今回WebとDBを別々に作ろうと思っております。 ここで、PHPをWebサーバとDBサーバ間で連携させたいのですが、同一でないサーバー上にDBサーバを置く場合、Webサーバ側のPHPインストール時の--with-pgsql=の後のオプションはどのようにすればよいのでしょうか? それともWebサーバ上にDBサーバを作って、PostgreSQLクライアントとして動作させ、DBサーバへアクセス出来るようにしなければならないのでしょうか? 後、DBサーバ側にはPostgreSQLの他にMySQLも動作させたいのですが、同一サーバ上に二つのDBサーバがあるのはやはりセキュリティ的には良くないのでしょうか? 回答の程宜しくお願い致します。

  • サーバーの負荷テストをしたい

    自宅で、WEBサーバーとDBサーバーを立ち上げています。 サーバーには、PHPやPerlで書かれたWEBアプリが入っています。 最近、アクセスが増えて300人位のユーザーが一斉にアクセスすると、レスポンスが遅くなるようになりました。落ちたこともあります。 このサーバーはこのプログラムで、どの程度の負荷にまで耐えられるのか、また余裕をもって動かすならどの程度の増強(サーバーの追加など)をしたらいいのか、わからないので負荷テストをしてみたいと思いました。 負荷テストの経験は全くありません。 一通り、ネットや本屋も見たのですが、よくわかりませんでした。 また、OSは、Cent OS3、WEBサーバーはApache2.2、DBはMySQLおよびPostgreSQLを使っています。 サーバーの負荷テストの方法について、教えていただけないでしょうか? よく解説しているサイトなどでも助かります。

  • 2つの異なるサーバーのDBを扱う

    現在、Visual Studio 2005(BASIC) を使って、Aのサーバー(IIS)に画像データを貯めるWebプログラムを作成しようとしています。この管理にはMDB形式のDBを使用する予定です。 ところが、このサービスを利用できるユーザーの管理は、Bのサーバー(UNIX MySQL)のDBで管理されています。 このように、Aのサーバーで動作するWebプログラムからBのサーバーのDBに接続することは可能なのでしょうか?

  • PostgreSQLサーバー。

    今回、自宅でプログラミングの勉強をする上で、DBの課題ができ、PostgreSQLをインストールできずに困っています。 課題といたしましては→テーブルを作成し、そのテーブルに対して検索した結果を表示するServletを作成することです。 そして、サンプルデータをAccessに置き、PostgreSQLとAccessをODBCで繋ぐ事です。 その第1段階といたしまして、PostgreSQLをWebサーバーにインストールする事です。  自分でも、HPなどで結構調べたのですが、自分の環境の、 OS----------------Win98 Webサーバー ------JRun に合う、PostgreSQLサーバーが探し出せないのです。 どなたか、詳しい方宜しくお願いします。

  • 検索の不具合とサーバーの移行

    現在、パソコンをサーバーがわりにホームページを管理しています。サーバー自体は2000年頃から使っているのですが、今年に入ってからエラーが少しずつ出てくるようになりました。特に困っているのは、ホームページにある検索ページが全く使い物にならない時間帯があります。とりあえずサーバーを再起動させれば、使えることには使えるのですが、次の日の午前になると検索がまたできなくなって、それで再起動して・・・というくり返しをやっています。 今は運良くサーバーも不具合が無い状態なのですが、そろそろサーバーを移行することも検討しています。とりあえずページ自体には支障は無いのですが、上でも書いたように検索ページのみ不具合が出て使えないときがあります。検索ページのプログラムやファイルだけを調べて直す方法があれば、それが一番てっとりばやいです。いちおう、自分の知っている業者さんに頼んで直してもらおうと思ったら、「サーバーを新しくした方がいい」の一点張りでサーバー内部のエラーだけを直すことは難しいという回答しかもらえませんでした。 話がややこしくなったので、質問内容を要約すると 1. サーバーを移行しなくても、検索ページのエラーを完全に直す方法があるのでしょうか? 2. サーバーを移行しなくてもハードディスクを増設したり、新しくメモリーを増やしたり、拡張したりすればエラーを回避できるのでしょうか?

  • xoopsの使えるレンタルサーバ

    自サーバにて、いろんなサイトを抱き合わせでアクセスさせていますが、 今回、回線が込んできたので、レンタルサーバに引越しようと考えてますが、自サーバをMySQL 4.0で構築しているため、中々、MySQL4.0使用の レンタルサーバが見つかりません。 MySQL 4.1も考えましたが、xoops上では不具合が多いようです。 それに以降するのも大変な感じがするので、できれば、同じMySQL4.0.xが 動作するレンタルサーバを探しています。 もし、ご存知の方いましたら、教えて頂けないでしょうか? 自サーバのバージョン Apache 2.0.52 PHP 4.4.4 Perl 5.8.3 MySQL 4.0.27 以上、よろしくお願いします。

  • Movable Typeはwindowsサーバで動く?

    Movable Typeを使ってブログを構築しようと思ったのですが、うちの会社のWebサーバはwindows2000です。 windows2000サーバでも、Movable Typeは動作するのでしょうか? DBに、Berkeley DB、MySQL、PostgreSQL、SQLite などが必要とのことですが、これらのDBはwindowsでは動作しないと思ったので、質問させていただきました。 また、webサーバにWindowsを使っている環境で動作するブログ構築ソフトがあれば教えてください。

  • DBサーバーはどれがいいのですか?

    MySQL、PostgreSQL、SQLサーバー、ORACLEデータベースについて 仮に、ユーザが5000万人のSNSを作った場合、MySQLやPostgreSQLで対応できますか? 検索に時間がかかったりするのでしょうか? その場合、DBをORACLEにしたほうがいいのでしょうか? ■費用について もし、DBサーバーを1台設置して、ORACLEにした場合、初期費用や毎月のコストはどのくらいになるのでしょうか? ORACLE対応のDBサーバーの金額等も教えて頂ければ幸いです。 あと、SNSの会員が10万人までだとしたら、 MySQL、PostgreSQL、SQLサーバー、ORACLEのうちだと、どれがコスト的に一番効率的でしょうか?

  • サイト内投票ボタン(いいね等)の設置方法について

    facebook等に連動しないサイト内投票ボタン(いいね等)を設置したいです。 既に存在するwebページ内に、上記ボタンを設置することによりweb投票が出来るサイトを作成しています。参考になるプログラムやソース等ありますか? 対象htmlファイルが置かれているレンタルサーバでは、javascript、PHP5、perlが動作します。またDB(MySQL、PostgreSQL)が利用可能です。

    • ベストアンサー
    • PHP
  • Webサーバが固まる原因について

    よく理解できないことが起きているので、質問することにしました。クライアント様のサーバなのですが、SSHでリモートでアクセスできるのにウェブサーバやメールサーバが正常に動作していないことが稀にあります。 cronで毎分でPINGを飛ばして死活監視を実装していますが、この監視ではウェブサーバやメールサーバが正常に機能しているかのチェックにはなりません。したがって、そこまでチェックする機能を実装させるべきなのですが。 サーバの基本仕様を載せておきます。 OS: Fedora Core1 Webサーバ: apache1.3.29 + openssl-0.9.7e メールサーバ: postfix-2.1.4, qpopper4.0.5 疑問なのは、httpsdデーモンのプロセスが動作しているにもかかわらず、ホームページ閲覧ができない症状が起き得るのかということです。httpsdのアクセスログを見ると、不正アクセスらしいログが多々出ておりました。Linuxサーバなのに、Windowsサーバのファイル(.aspファイルなど)を閲覧しようとしていてファイルが存在しない、といったログが多々出ておりました。 もし、同じような症状が起きて問題解決できた方がいらっしゃれば、是非アドバイスをお願いします。