質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

4321閲覧

接続障害で何を調べればよいか

退会済みユーザー

退会済みユーザー

総合スコア0

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2016/08/21 09:28

公開環境で稼働中のシステムで、稀に接続障害が発生しますが、原因ができずに困っています。

サーバはリクエストを受け取っているようですが、レスポンスが得られず切断されるようです。

Fidderで調べたところ、ServerGotRequestは値が入りますが、リクエストのところはオールゼロのまま20 - 30秒経過したのちに、エラーが発生するような状況です。

ロードバランサは「ipvs + Keepalived」で構成しており、Tomcatへ転送しています。

クライアントを操作しながらnetstartで状況を追ってみましたが、数秒syn_recvの状態になってそのまま切断されているのかと思うのですが、テスト数が少なく確証が持てない状態です。

なお、unknownが発生していないか調べましたが、目視している限りでは発生していないようでした。


どういった調査を行えば、解決に近づくでしょうか。
アドバイスいただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/21 09:34

何かしらのログが吐かれている気がしますがログは確認しましたか?
退会済みユーザー

退会済みユーザー

2016/08/22 00:30

ご回答くださいましてありがとうございます。 ログについて、Tomcatのログは調査しました。 しかし、接続できない場合はTomcatのアクセスログに何も痕跡が残らないようです。Tomcatのログにも、アプリケーションログにも何も出力されません。 ということは、バランサからTomcatへのアクセスが届いていない、スレッド数が不足しているかに絞り込むことができそうです。 バランサのログを調べているのですが、そもそもバランサでログ出力していない(/var/log/以下にそれっぽいものがない)ので、まずはそのログを出力するようにしてみます。
guest

回答1

0

ベストアンサー

一般的な調査手順となりますが、
先ずどの時点で通信が途切れているのかを確認する必要があるかと思います。

今回はクライアントからのリクエストはAP(アプリケーション)サーバまで届いているということなので、
レスポンスがどの時点が途切れるのかをまず切り分けた方が良いです。

APサーバからそもそもレスポンス自体が飛んでない場合はAPサーバ上の問題(アプリケーションの潜在的なバグとかサーバの稼働状況)なので、
アプリケーションのログ、Tomcat側の出力ログを確認するのがいいでしょう。

エラーログが吐かれていた場合は、
それを手掛かりに調査をすると原因が特定しやすいと思われます。
(質問の内容を見るとこの時点で怪しそう)

APサーバ時点ではレスポンスが正常に飛んでいる場合は、
経路途中でパケットが破棄されている等も可能性も考えられるので、
次に確認すべきはロードバランサ側のログとなると思われます。
(APサーバからの通信ログを取得してなかったらダメな気もする…)

そんな感じでレスポンス経路で通過する順にログの確認・調査という手順を踏むしかないかと思われます。

ただsyn_recvで止まるというのは、
確認応答待ち(ACK待ち)で**TCPコネクションを張ること自体に失敗(スリーウェイハンドシェイク時点でダメ)**してそうなので、
実はコネクション上限に到達してコネクションが張れないとか、
そういう類のものかもしれませんね、確証はないですが^^;

投稿2016/08/21 13:51

Panzer_vor

総合スコア1636

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/26 22:11

丁寧なご回答をありがとうございました。 「経路ごとにログを出力して地道に調べる」ということで理解しました。 やっぱりそうですよね。 ログ出力していないところがありましたので、まずはそこからの対応となりそうです。 おかげさまで、とっかかりが掴めました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問