系統穩定性問題 - 磁碟變為只讀,系統停止,終端輸入/輸出錯誤
我需要一些幫助來診斷和查找系統穩定性問題的根本原因。所有跡像都指向某種硬體問題(磁碟或 RAM),但到目前為止我的調查沒有發現任何問題。
這是一個全新的系統,帶有執行 Ubuntu 20.04 的新硬體。它是 NUC (D54250WYK / NUC8I5BEH),具有 2x16GB RAM 和 2TB 三星 SSD (Samsung 970 EVO Plus)。它也是 Ubuntu 的全新安裝。該系統上安裝的東西很少,只有 docker 引擎和大約 8 個容器。
症狀是系統每隔一段時間就會完全停止。我幾乎無法通過 SSH 登錄機器,有一次我可以並且我執行的每個命令都給出了:
-bash: /usr/bin/ls: Input/output error
其他時候我根本無法遠端登錄,但直接打開機器上的終端我可以看到許多錯誤記錄到終端,主要是磁碟已滿或無法寫入磁碟。
重新啟動可以解決問題,並且系統可以在 1 到 6 天內正常執行,然後問題再次發生。
檢查 dmesg 和 syslog 在系統無響應之前我看不到太多。我猜由於磁碟是只讀的,它無法寫入日誌。我確實看到其他服務有些抱怨,例如:
[826122.177679] systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies. [826122.178711] systemd[1161852]: containerd.service: Failed to connect stdout to the journal socket, ignoring: Connection refused [826122.178970] systemd[1161852]: containerd.service: Failed to execute command: Input/output error [826122.179022] systemd[1161852]: containerd.service: Failed at step EXEC spawning /usr/bin/containerd: Input/output error [826122.179430] systemd[1]: containerd.service: Main process exited, code=exited, status=203/EXEC [826122.179439] systemd[1]: containerd.service: Failed with result 'exit-code'. [826122.179568] systemd[1]: Failed to start containerd container runtime.
我還看到很多 UFW 防火牆的日誌記錄,阻止了各種請求(有些是我允許的埠,我不確定為什麼會發生這種情況)。
根據研究,這似乎是有故障的硬體,可能是磁碟或記憶體。因此,我已盡可能多地對兩者進行了診斷:
smartctl
報告沒有錯誤和健康的 SSDbadblocks
在系統中執行良好,沒有問題,零錯誤fsck
除非由於關機錯誤而重新啟動(立即修復),否則不會出現任何問題memtest86
通過幾個循環沒有問題並且報告零錯誤我還能做些什麼來更好地診斷這個問題?我可以打開更多日誌記錄嗎?我可以使用其他診斷工具來找出原因嗎?
經過大量探勘,我似乎找到了解決方案(到目前為止沒有崩潰🤞)
tl;博士:
在我添加
/etc/default/grub
的GRUB_CMDLINE_LINUX_DEFAULT
變數中:nvme_core.default_ps_max_latency_us=0
andpcie_aspm=off
,最終看起來像:GRUB_CMDLINE_LINUX_DEFAULT="nvme_core.default_ps_max_latency_us=0 pcie_aspm=off"
這會禁用三星 Evo SSD 的 APSM(高級電源管理),這似乎會導致磁碟解除安裝或無法訪問。
Linux 上某些類型的較新 SSD 和 APSM 似乎有相當長的歷史。大多數問題看起來都有修復,但它似乎仍然影響著我。
更多閱讀: