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

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

ただいまの
回答率

88.23%

webサーバーの切り替え時に重くなる

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 5
  • VIEW 3,119

yorksyo

score 15

お世話になります

公開しているサーバー(Centos 自宅サーバー)がアクセスが困難なほどに重くなるタイミングがあって、ご質問させていただきます

自宅で公開しているサーバーは
ルーター → WEBサーバー → (Mysql, Redisクラスター, MongoDBのレプリカセットのDBサーバー)という構成です
(その他にDNSもあり)

重くなるタイミングは、ルーターからの接続WEBサーバーを別のWEBサーバー(構成管理ツールで作成した同じ機能のWEBサーバー)に切り替えるタイミングで、長くて10分ほどサイトが反応してないのでは?と思われるほどの重さになります

その後時間の経過で重さは解消されます
(再び元のWEBサーバーに戻すと、戻す際に10分ほどサイトが反応しない同様の反応がある)

上記の反応しない時間は、アクセスが多い時間帯のみ発生して(より長く)、アクセスが少ない時間には発生していません(又は重くなるほど発生していない)

時間の経過とともに重さが解消されるので実害はなさそうですが、WEBサーバーに対してロードバランサを使用していたのが上記の問題のために事実上使用不可能になっています(ロードバランサで切り替えるとサイトが継続して反応しないことに)(ロードバランサを使用しないで、ルーターから切り替えても上記の現象は発生)

アクセスが多いタイミングで発生するので長時間の再現をしづらいのも困っている点です(秒間2,3アクセスから)

Muninでチェックしたところ、デフォルトの監視項目では変化した点は特になさそうです

ログをチェックしたところ、Apacheのログ・PHPのエラーログとも通常通りでエラーは出力されていませんでした

ネットワークを切り替えたタイミング(例えばWEBサーバー192.168.0.100からWEBサーバー192.168.0.101)で発生しているのでネットワークの問題だと思っていますが、1週間ほど迷宮をさまよっています

解決方法をぜひお願い致しますm(__)m

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • TaichiYanagiya

    2016/01/07 10:28

    ルーターもしくはネットワークの問題のように思います。
    WebサーバーのIPアドレスが同じであれば、ARP まわりの問題も考えられますが、IPアドレスは別なのですね。
    KVM の 192.168.200, 192.168.0 のネットワークはブリッジにしているのでしょうか?

    キャンセル

  • yorksyo

    2016/01/07 10:40

    WebサーバーのIPアドレスは異なるものにしています。またKVMのネットワークはブリッジにしています。よろしくお願いします

    キャンセル

  • eripong

    2016/01/07 10:42 編集

    ここでやりとりすると後で参照しにくいので、TaichiYanagiyaさんが回答をつけてはいかがでしょうか?

    キャンセル

回答 3

checkベストアンサー

+1

ネットワークを切り替えたタイミング(例えばWEBサーバー192.168.0.100からWEBサーバー192.168.0.101)で発生しているのでネットワークの問題だと思っています  

Webサーバやその先のサーバで何らかの初期化処理が実行されている可能性も
あるのではないでしょうか。
(元のサーバからのredisへの接続が残っていてタイムアウトするまで新しいサーバから接続できないなど。)

Webサーバでの処理時間の情報はないでしょうか?  
(Apacheであれば、ログフォーマットに%Dを指定すればアクセスログに出せるはずです。)

遅くなったときのポートのESTABLISHの数などはどうなっていますか?  

それから、別の観点ですが、現象が発生しだした頃に、(一週間前でしょうか)  
何らかの変更は行っていないですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/15 17:27

    上りの帯域制限だけかかるみたいです(下りは制限なし)

    同じプロバイダの別契約回線で、下りを40~50GB/日程度使っても帯域制限がかからなかったのも油断した原因になりました

    キャンセル

  • 2016/01/15 17:34

    あ、「下りも遅かったのでしょうね」のつもりでしたが、
    意図通り理解していただけたみたいですね。
    上りの帯域制限のみですか。なるほど。

    LVSの設定変更の結果は私も知りたいので、
    よろしくお願いします。

    キャンセル

  • 2016/01/19 23:35

    LVSの設定とネットワーク量を調べてみました

    ルーターのwan側ネットワークの上り通信量は
    lvs_sched rr(ラウンドロビン)のほうがlvs_sched lblc(サーバーの負荷が上がったら別のサーバーに変更)よりも2~2.5倍ほどネットワーク量が増えていました

    ひょっとしたらApacheの設定で変化するかもと思っています(未検証)
    (keepaliveをoffにする・Timeout等)

    おかげで原因を特定してロードバランサを再び使えるようになりました。
    ありがとうございました

    キャンセル

0

回答レベルのものは提示できないので申し訳ないのですが、
追加情報で、

ルーター(wan)経由だと重くなりローカルネットワークから直接webサーバーにアクセスした場合は通常通りの軽さでした。

とのことですので、ルーターもしくはネットワークの問題のように思います。 
現場にいないとちょっと調べようがないのですが、もう少し範囲を絞り込みたいと思います。

(ケース1) ルーターで止まっていて、KVMホスト、仮想マシンに届かない
(ケース2) KVMホストには届くが、仮想マシンに届かない
(ケース3) 仮想マシンには届くが、応答パケットが出ない
(ケース4) 仮想マシンには届き応答するが、応答パケットがルーターで止まる

どのケースか切り分けるため、KVMホストと仮想マシンで tcpdump を取ってみるのはいかがでしょうか。

[root@KVMホスト]# tcpdump -nn -i (ルータ側ブリッジI/F) host (クライアントIP)

[root@仮想マシン]# tcpdump -nn -i (ルータ側I/F) host (クライアントIP)


クライアントからアクセスしてどこまでリクエストパケット、応答パケットが出るか確認します。
(どのケースかわかったからといって、原因のアテはないのですが ...)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/08 11:43

    回答をしていただきありがとうございますm(__)m

    KVMホストと仮想マシンでtcpdumpを実行したところ、KVMホストと仮想マシンはほぼおなじタイミングで出力・遅延されていました

    遅延しているパケットの種類は、明日再度チェックするつもりです


    (いちおう使用ルーターのNECのAtermで調べて、NATテーブルが溢れる場合があるとのことでしたのでNATテーブルタイマーを短くしたところ、重さに変化はなく効果があるようには見えませんでした

    NECのAtermは一般家庭用で、サーバーとして公開するにはもっと別のルーターがいいと思いRTX1210を注文してみました。原因でないにしてももう少し分かりやすいルーターがいいと思いましたので・・・仮にこれで改善されたとしても根本的な原因は残るので解決したいですが・・・)

    キャンセル

  • 2016/01/09 00:33

    (ケース1) でしょうか。KVM には問題なさそうですね。
    となるとルーター? デバッグできればいいのですが。

    ルーターは NAT やコネクショントラッキング用に内部テーブルを持っていると思われますが、クライアントと Webサーバー間の接続が正しい手順で切れていないために、内部テーブルに残ってしまっている可能性はないでしょうか(その TTL が 10分とか)。
    切り替え前の仮想サーバーで FIN_WAIT2 などが残っていませんでしょうか。
    もし、切り替え前の仮想サーバーで Webサーバーデーモンが稼働しているのであれば、デーモンを停止すると中途半端に残った接続を RST で終了してくれるかもしれません。

    キャンセル

  • 2016/01/10 17:04

    切り替え前のサーバーでApacheを停止してい見たところ、重くなる現象に変化はみられませんでした。

    変更を予定しているルーターでは(明日明後日の早朝に変更するつもりです)、使用中のnatテーブル数等の一部パラメータも表示できるようですので、絞り込みに役立ちそうな値が分かり次第、追加で書き込ませていただきます
    よろしくお願いします

    キャンセル

0

「構成管理ツールで作成した同じ機能のWEBサーバ」が設定により新・旧のサーバで仮想NICのMACアドレスが同じになっている、という可能性はないでしょうか?

約10分間というのがARPキャッシュ絡みな気がしてなりません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/11 16:47

    ご回答ありがとうございます

    WEBサーバーのMACアドレスを確認してみたところ、それぞれ別の値になっていました

    確認漏れを防止するため、WEBサーバーのMACアドレスを再度変更してみたところ重さ時の状態に変更はありませんでした

    キャンセル

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

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る