重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

【概要】
クライアントでサーバにアクセスした際の応答が悪くなってしまい、困っています。

【構成】
機器の構成は以下の通りです。

[サーバ]
プログラム言語 : Java/JSP/Servlet
Webサーバ : apache/tomcat
OS : Windows Server 2008

[クライアント]
プラットフォーム : Android2.3 / 50台
OS : Windows embedded / 10台程度

[通信環境]
無線LAN Wi-Fi

<運用状況>
Androidクライアント数 : 50台
日中のみの運用で、夜は稼働していない
23:30頃にサーバをシャットダウンし、翌日の朝10:00頃に起動する運用。

【事象】
1.昼12:20頃クライアントのAndroid端末でWebページが取得できないエラーが発生。
「ページがみつかりませんでした」とのエラーメッセージが表示される。

2.「1.」のエラーが1台の端末だけでなく、他の端末でも起こり始める。

3. 多数の端末で「1.」のエラーが発生する。

4. 同じWebサーバにアクセスするWindowsOSのクライアント端末の操作が重くなる。

5. 50台の全てのAndroid端末の画面が初期画面に遷移する。

6. Webサーバを再起動し、クライアントから正常に操作できるようになる。

[ログ]
サーバ側のログを調査し、クライアント全台が使用不可になる前に以下のエラーが180件程度発生している事を確認。

(例)
2014-05-04 11:32:32 StandardWrapperValve[default]: サーブレット default のServlet.service()が例外を投げました
java.net.SocketException: Connection reset by peer: socket write error

[対応状況]
(1)一日の終わり23:30~0:00頃にサーバをシャットダウンし、翌日の朝10:00頃に起動する運用だが、障害発生前日はシステム・メンテナンス上の都合でシャットダウンを行っていなかった。
(2)こののち、サーバを必ず夜シャットダウンするようにしたところ、昼に同障害は発生しなくなった。
(3)しかし、19:00頃、再度同障害が発生したため、「サーバ起動後、ある程度の時間運用すると、当障害が発生する」との考えから、昼15:00頃、サーバを再起動するようにしたところ、以後障害は発生していない。

【質問】
同様の障害を経験した方で、原因として思い当たる節がある方はお教えください。

今のところ、似た構成のシステムで、NullPointerExceptionが頻発した後に、サーバの応答が遅くなった事があるため、エラーが多数発生すると、サーバが重くなるのではないかと疑っています。
しかし、エラーが多数発生することにより、なぜサーバが重くなるのかが分からないため、対策を取ることができず、行き詰っています。

また、原因を明らかにするために、調査した方が良い箇所についてご存じの方がいましたら、その点についてもお教えください。
例えば、Wi-Fiの通信状況、クライアントの同時接続数、tomcatのリソース状況など色々な観点があると思いますが、この場合、どういう箇所が障害箇所として考えられるのでしょうか?
障害の切り分けについて、ご存じの方がいらっしゃいましたら、ヒント程度でも結構ですので、お教え頂ければと思います。

よろしくお願い致します。

A 回答 (2件)

サーバでメモリリークが起こっているのでは無いでしょうか?


サーバで動かしているプログラムに原因があると思うので、イベントログ、アクセスログ等を確認してみて下さい。
どういうプログラムを動かしているのか書いてないので判りませんが、古いバージョンを使っているなら
apache、tomcatも含めて新しいバージョンに更新したほうが良いと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはりメモリリークの可能性があるのですね。
その線で調べてみます。

バージョンが古いのも良くないとの指摘、ありがとうございます。

確かに古いバージョンを使っていて、
tomcat 4.1
Java 1.4
Android 2.3
です。
アクセスログ等も取得、解析してみます。

お礼日時:2014/05/08 13:01

・ネットワークがサーバーかの切り分けを行う必要があります。


 途中のSWでLogが確認できれば行うのと、SWの負荷を確認してください。
 サーバーはアパッチのLog確認と、プロセスの状態を確認してください。
 プロセスは、下記を使うとわかりやすいです。
 http://technet.microsoft.com/ja-jp/sysinternals/ …
    • good
    • 0
この回答へのお礼

ありがとうございます。
ネットワークのログと負荷の確認が必要との事、参考になります。
サーバのプロセス確認もお教え頂いたツールでやってみたいと思います。

お礼日時:2014/05/08 13:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!