web-dev-qa-db-ja.com

断続的なサーバーのハングを解決する方法は?ディスクへの書き込み(およびディスクからの読み取り)が完全に停止する

LAMPサーバーは約6か月間使用できます。 CentOS 7.0

最初の3か月間、再起動せずにノンストップで実行された後、ハングしました。

その後、次の2か月間実行され(再起動せずにノンストップで)、再びハングします。

その後、14日間実行され、その後ハングします。

その後、14日間実行され、その後ハングします。

ハングするたびに、サーバーを再起動する必要がありました。システムソフトウェアは追加/更新していません。

ハングの症状は、これらすべての場合で同じです。

ディスクへの書き込み(およびディスクからの読み取り)は完全に停止します。

WebサーバーとMySQLデータベースが機能しなくなります。物理コンソールまたはsshを介してリモートでログインすることはできません。

ただし、このハングが発生したとき、Linuxの「top」および「mytop」コマンドを実行してリモートssh Shellセッションを開き、サーバーが再起動されるまでこれらは機能していました(更新)。

したがって、これはサーバーが完全にフリーズしなかったことを証明します。一部のソフトウェアはまだ実行されていました。

サーバーは正常に再起動できませんでした。

ログには何も見つかりませんでした。すべてのログが同時に停止しました。

ハングが発生したときの物理コンソール(KVM)の最後のエントリは、AdaptecRAIDコントローラーのエラーについて言及していました。以下を参照してください。

00001
[1143965.194144) 0000000000000246 000000014423ecb4 1111880869b6b740 ffff880000c 00040
00040
[1143965.194786] Call Trace:
[1143965.195044] [<Ifffffffa007f46b>] aac_fib_send+0x3db/8x510 [aacraid] 
[1143965.195307] [<ffffffffa00794d8>] aac_get_adapter_info+0xc8/8xb70 [aacraid] [1143965.195573] [<ffffffffa007e990>] _aac_reset_adapter+0x430/0x620 [aacraid] 
[1143965.195573] [<ffffffffa007e990>] _aac_reset_adapter+0x430/0x620 [aacraid] 
[1143965.195838] [<ffffffffa0071a79>] aac_reset_adapter+0xa9/0x290 [aacraid] 
[1143965.196101] [<ffffffffa0076214>] aac_eh_reset+Oxla4/0xle0 [aacraid] 
[1143965.196368] [<ffffffff813d6d83>] scsi_try_Host_reset+0x43/0x100 
[1143965.196628] [<ffffffff813d812,17>] scsi_eh_ready_devs+0x887/0xc20 
[1143965.196889] [<ffffffff813da43c>] scsi_error_handler+0x52c/8x820 
[1143965.197151] [<ffffffff813d9110>] ? scsi_eh_get_sense+0x2a0/0x2a0 
[1143965.197415] [<1111111181085aff>] kthread+0xcf/8xe0
[1143965.197675] [<1111111181085a30>] ? kthread_create_on_node+0x140/0x140 
[1143965.197939] [<111111118151316c>] ret_from_fork+Ox7c/OxbO
[1143965.198200] [<1111111181085a30>] ? kthread_create_on_node+0x140/0x140 
[1143965.198461] Code: 48 c? 87 b8 00 00 00 00 30 08 a0 5d c3 Al 11 84 00 00 00 00 00 Of 11 44 00 00 55 48 8b 87 90 01 00 00 48 89 e5 8b 80 be 00 00 00 <a8> 04 75 14 f6 c4 01 75 14 25 80 00 00 00 83 f8 01 19 c0 83 e0
00 00 Of 11 44 00 00 55 48 8b 87 90 01 00 00 48 89 e5 8b 80 be 00 00 00 <a8> 04 75 14 f6 c4 01 75 14 25 80 00 00 00 83 f8 01 19 c0 83 e0
75 14 f6 c4 01 75 14 25 80 00 00 00 83 f8 01 19 c0 83 e0
[1143974.082729] aacraid: aac_fib_send: first asynchronous command timed out. 
[1143974.082729] Usually a result of a PCI interrupt routing problem; 
[1143974.082729] update mother board BIOS or consider utilizing one of 
[1143974.082729] the SAFE mode kernel options (acpi, apic etc)

RAIDコントローラカードを交換しましたが、問題は解決しませんでした。同じ症状でサーバーが再びハングしました。

私は現在、「dmesg -wH」を使用してリモートsshシェルを常に実行しており、ハングが再び発生したときにdmesgログをより多くキャッチすることを望んでいます。

サーバーには、RAID1に2つのSATASSD960GBとRAID1に2つのSATA500 GBHDDを備えたAdaptecRAIDカードがあります。

スマート。属性はすべてのドライブで問題ありません。

何かアドバイス?

編集#1 2015年9月13日:
すべてのパーティションに十分な空き領域があります。
ログは適切にローテーションしています。

編集#2 2015年9月13日:
RAIDコントローラー:Adaptec ASR71605
BIOS:7.5-0(32069)
ファームウェア:7.5-0(32069)
ドライバー:1.2-0(30300)
ブートフラッシュ:7.5-0(32069)

2
alxsr

解決策は、CentOSに付属のオープンソースドライバーではなく、Adaptec独自のドライバー(サイトからダウンロードできます)を使用することでした。サーバーはAdaptecドライバーで約11か月間稼働しました(その後、サーバーは不明な理由でハングしました)。これは、オープンソースドライバーでの14日間の稼働時間から大幅に改善されています。

0
alxsr