Unix

如何調試 Solaris 10 關閉時的靜默掛起?

  • December 13, 2013

我們在關閉新映像的 Oracle/Sun Solaris 10 SPARC 機器時遇到了神秘的掛起。它是可重複的(在同一個地方……據我們所知)。我們讓它在 5-10 分鐘內多次嘗試自行解決,但它從未取得進展。

我以前從未見過這種情況。

控制台上顯示的最後一件事syslogd是發送了信號 15。在我們禁用snmpdx盒子之前,控制台上的最後一件事snmpdx是發送了信號 15(在syslogd發送信號 15 之後)。

雖然很難找到,但在過去的 Solaris 時代,我會從經驗中更好地了解問題所在,然後可以通過腳本echo中的愚蠢(但有效)調試語句進一步縮小範圍。/etc/*.d在圖片中使用 SMF,我不太確定從哪裡開始。

sync我們在提示符下強制進行故障轉儲以{ok}供以後分析,然後讓該框出現,因為它是生產伺服器並且我們計劃的停機視窗正在關閉。

/var/adm/messages顯示沒有任何用處。

您將如何調試這種情況?有沒有辦法停止隱藏關機時發生的事情,例如顯示正在做的每一件事?(自 Solaris 10 以來,我從不喜歡在啟動時隱藏了很多東西)

mdbsavecore 的 ps 顯示以下程序在掛起時執行(afsd 是 OpenAFS 客戶端,預計會有很多):

> > ::ps
S    PID   PPID   PGID    SID    UID      FLAGS             ADDR NAME
R      0      0      0      0      0 0x00000001 00000000018387c0 sched
R    108      0      0      0      0 0x00020001 00000600110fe010 zpool-silmaril-p
R      3      0      0      0      0 0x00020001 0000060010b29848 fsflush
R      2      0      0      0      0 0x00020001 0000060010b2a468 pageout
R      1      0      0      0      0 0x4a024000 0000060010b2b088 init
R   1327      1   1327    329      0 0x4a024002 00000600176ab0c0 reboot
R    747      1      7      7      0 0x42020001 0000060017f9d0e0 afsd
R    749      1      7      7      0 0x42020001 00000600180104d0 afsd
R    752      1      7      7      0 0x42020001 0000060017cb44b8 afsd
R    754      1      7      7      0 0x42020001 0000060017fc8068 afsd
R    756      1      7      7      0 0x42020001 0000060017fcb0e8 afsd
R    760      1      7      7      0 0x42020001 00000600177f4048 afsd
R    762      1      7      7      0 0x42020001 000006001800f8b0 afsd
R    764      1      7      7      0 0x42020001 000006001800ec90 afsd
R    378      1    378    378      0 0x42020000 0000060013aee480 inetd
R      7      1      7      7      0 0x42020000 0000060010b28008 svc.startd
R    329      7    329    329      0 0x4a024000 00000600110ff850 sh
Z    317      7    317    317      0 0x4a014002 0000060013b3a490 sac 

/var/svc/log 包含受 SMF 控制的所有服務的日誌文件。這至少是調試 SMF 程序問題的起點。

我同意大衛的觀點,請檢查該伺服器上沒有可能保持打開狀態的 NFS 掛載,並且該伺服器沒有掛載其他可能不可用的 NFS 文件系統。

使用 SMF 時,您仍然可以在腳本中執行老式的迴聲。只需進入 /lib/svc/method 並編輯即可。只是從那個程序列表中,我會說它與 AFS 相關,但我沒有使用它。

引用自:https://serverfault.com/questions/238204