web-dev-qa-db-ja.com

Linuxマシンのデバッグがフリーズする

私は15の同一のLinuxRH 4.764ビットサーバーを持っています。それらはクラスターデータベースを実行します(クラスターはアプリケーションレベルです)。時々(毎月かそこら)、ランダムなボックス(同じではありません)がフリーズします。

ボックスにpingを実行してpingを実行できます。ボックスでsshを実行しようとすると、次のようになります。

ssh_exchange_identification: Connection closed by remote Host

SSHが正しく設定されている。

サーバールームに行ってコンソールに直接ログインしようとすると、次のコマンドでコンソールを切り替えることができます。 Alt+Fn、ユーザー名を入力できますが、文字は表示されますが、を押した後 Enter、 何も起こりません。一度8時間待っても変わらなかった。

すべてをリモートホストに記録するようにsyslogを設定しましたが、それらのログには何もありません。マシンを再起動すると、問題なく動作します。 HWテストを実行しました-すべて問題なく、ログには何もありません。マシンもNAGIOSで監視されており、フリーズ前の異常な負荷やアクティビティはありません。

私はアイデアを使い果たしました。他に何ができるか、確認できますか?

9
Luka Marinko

カーネルが何らかの方法でパニックに陥り、sshdがサーバーキーを送信できなかったようです。おそらく、カーネルはネットワークスタックがまだ稼働しているようにくさびで留められていましたが、vfsレイヤーは利用できませんでした。

RHEL4システムで同様の問題が発生したとき、 netdumpおよびnetconsoleサービス と、クラッシュダンプおよびカーネルパニック情報をキャッチするための専用のnetdumpおよびsyslogサーバーをセットアップしました。また、kernel.panic sysctlを10に設定しました。これにより、システムがパニックになったときに、カーネルトレースと、そのシステム上のメモリのコピーの両方を取得し、「crash」ユーティリティで分析できます。

ホスト用にシリアルコンソールを設定することも確かにメリットがあります。そのため、コンソールの出力を確認し、マジックsysrqキーを押す可能性があります。また、ネットワークをセットアップする意思があり、それをサポートするハードウェアがある場合は、IPMIを使用して、ハードウェアの電源オフ、電源オン、再起動、およびクエリをリモートで実行できます。

(その価値については、RHEL5はkexec/kdumpと同様の機能を備えており、クラッシュダンプのみがローカルに保存されます)

6
jsbillings

私はあなたがメモリを使い果たしているドーナツにドルを賭けます。システムは、どこから入手するかを見つけようとしているため、停止しつつあります。非常に迅速に発生しているため、監視で検出されない場合があります。メモリ使用量のリモートロギングを含め、監視を強化します。ログでOOMメッセージも確認してください。

(いくつかのsshウィンドウを開いて実行したい場合もあります。)

3
mattdm

私には、これはシステムのリソースが不足しているように思われるため、sshのサーバー側で必要なプロセスを割り当てることができません。

実際のボトルネックは、プロセスやメモリ不足などさまざまです。確実に確認する唯一の方法は、ログとコンソールを調べて、そこに何かが存在するかどうかを確認することです。事前に開始されたsshジョブのシナリオ(各マシンに1つずつ)を設定して、次に発生したときに準備することをお勧めします。

本当に悪い場合は、より多くの組み込みコマンドを使用して別のシェルを開始することを検討してください。これは不可能な場合があるため、追加のプロセスを開始せずにさらに調査できます。また、「tail -f/var/log/*」は非常に役立つ場合があります。

幸運を。

私が似たようなものを見たのは、KVMスイッチが使用され、キーボードのホットキー(alt + nなど)がサーバー間の切り替えに使用された場合のみでした。すべての場合に発生したわけではありません。影響を受けたのはサーバーの切り替えでした。そのため、すぐには気づきませんでした。KVMスイッチ自体の物理ボタンを使用して切り替えた場合、ロックアップは発生しませんでした。サーバー間。ホットキーが頻繁に使用される場合、サーバーが新しいログインを許可しないことがありました。既存のSSHセッションは影響を受けませんでした。

0
RedGrittyBrick