如何解決間歇性伺服器掛起?寫入(和讀取)磁碟完全停止
我們有大約 6 個月的 LAMP 伺服器。CentOS 7.0
它在前 3 個月沒有重新啟動就不停地執行,然後它掛起。
然後它會執行接下來的 2 個月(也不會停止而無需重新啟動),然後它會再次掛起。
然後它執行了 14 天,然後它掛起。
然後它執行了 14 天,然後它掛起。
每次掛起後,我們都必須重新啟動伺服器。我們沒有添加/更新任何系統軟體。
在所有這些情況下,掛起症狀都是相同的:
寫入(和讀取)磁碟完全停止。
Web 伺服器和 MySQL 數據庫停止工作。我們無法通過物理控制台或通過 ssh 遠端登錄。
但是,當此掛起發生時,我打開了遠端 ssh shell 會話,其中執行了 linux“top”和“mytop”命令,並且這些命令一直在工作(刷新),直到伺服器重新啟動。
所以這證明伺服器沒有完全凍結。一些軟體仍在執行。
伺服器無法正常重啟。
我在日誌中什麼也沒找到。所有日誌同時停止。
發生掛起時,物理控制台 (KVM) 上的最後一個條目提到了 Adaptec RAID 控制器的錯誤。請看下圖:
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 控制器卡,但它並沒有解決問題,我們再次遇到了同樣的症狀的掛起伺服器。
我現在有一個遠端 ssh shell 一直在執行“dmesg -wH”,希望在再次發生掛起時擷取更多的 dmesg 日誌。
伺服器有一個 Adaptec RAID 卡,RAID 1 中有兩個 SATA SSD 960GB,RAID 1 中有兩個 SATA 500 GB 硬碟。
所有驅動器的 SMART 屬性都可以。
有什麼建議嗎?
編輯 #1 9/13/2015:
所有分區上都有足夠的可用空間。
日誌正在正確旋轉。
編輯 #2 9/13/2015:
RAID 控制器:Adaptec ASR71605
BIOS:7.5-0 (32069)
韌體:7.5-0 (32069)
驅動程序:1.2-0 (30300)
引導快閃記憶體:7.5-0 (32069)
解決方案是使用 Adaptec 自己的驅動程序(可以從他們的網站下載)而不是 CentOS 附帶的開源驅動程序。該伺服器使用 Adaptec 驅動程序執行了大約 11 個月(然後伺服器因未知原因掛起),這與使用開源驅動程序的 14 天正常執行時間相比有了巨大的改進。