
ちょっとおかしな動作をし始めた Linux サーバーがあります...
まず、ボックスは十分に活用されていません。これはデータベース サーバーであり、負荷は非常に低いです。vmstat を下と上に配置します...
- CentOS 5.4を使用しています
- このサーバーは数週間正常に動作しています
- ファイアウォールが設定されているため、ハッキングされている可能性は低いです (chkrootkit も同意します)。
- 負荷は本当に低いです。
- 私はサーバーとギガビット スイッチを使用しています。
- 他のサーバーではこの問題は発生していません。
- 別のボックスにリモート syslog を設定していますが、対応するエラーは表示されません。
そのため、ボックスに ssh (putty) で接続する場合、しばらく接続していないと、putty はすぐに「ネットワーク接続のリセット」エラーをスローします。
突然、接続が切れてしまう(またはネットワークが切断される)
ping の連続により、中断が発生していることがわかります。
--- vdbsrv1 ping statistics ---
80620 packets transmitted, 80619 received, 0% packet loss, time 23838ms
rtt min/avg/max/mdev = 0.234/0.273/1.741/0.043 ms, ipg/ewma 0.295/0.297 ms
SQL クエリ (「Select 1」) は、SQL が 0.04 秒の実行時間を報告しているにもかかわらず、ボックスに対して約 5 秒かかります。そのため、残りの 4.96 秒は謎です。
何かアイデアはありますか?
top - 11:49:28 up 12 days, 17:05, 4 users, load average: 0.00, 0.03, 0.01
Tasks: 150 total, 1 running, 149 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.0%sy, 0.0%ni, 99.3%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8174028k total, 8074924k used, 99104k free, 4558300k buffers
Swap: 19464184k total, 4k used, 19464180k free, 2306952k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 15 0 10348 692 576 S 0.0 0.0 0:02.13 init
root@dbsrv1# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 4 98980 4558300 2306992 0 0 1 13 3 2 0 0 99 0 0
答え1
これをデバッグするには、少なくとも次のことを行う必要があります。
putty ではなく CLI ssh クライアントを使用して、サーバーに対して 'ssh -v' を実行します。問題が発生しているかどうか、また ssh セッションでどのようなエラーが報告されているかを確認します。
wireshark または tcpdump を使用して、セッションのパケット キャプチャを取得します。おそらく RST が取得されます。
David さんの質問のとおり、別のクライアントからサーバーにアクセスしてみましたか? そうでない場合は、クライアントにネットワークの問題がある可能性があります。
ファイアウォールを通過する場合、Kyle が上で示唆したように、ファイアウォールには独自のセッション タイムアウトがあります。これが問題である場合は、「keepalive」設定が適切な回避策です。新しいセッションで問題が発生する場合は、pcap が問題のトラブルシューティングの最も迅速な方法になります。
答え2
完全に理解できたかどうかはわかりませんが:
「そのため、ボックスに ssh(putty) で接続する場合、しばらく接続していないと、putty はすぐに「ネットワーク接続のリセット」エラーをスローします。」
ということは、ログインしていない状態で新しくログインを開始すると、すぐに追い出されてしまうということですか?
そうでない場合、非アクティブだったときにタイムアウトするだけです。PuTTY で keepalive を設定するだけで済みます。
また、/var/log
ssh ログを調べて、そこに情報があるかどうかを確認することもできます。
答え3
これは変だった…
この Web サーバーは、VMware サーバーからの別の Web サーバーのクローンでした。
元のマシンはシャットダウンされました。新しいサーバーにコピーされました。新しいマシンが新しい名前と新しい IP で起動されました。古いマシンが再起動されました。
このシナリオの問題は、MAC アドレスが両方で同じであるため、非常に奇妙なネットワーク動作が発生することです。