Linux常見死機原因
添加時間:2018-10-6 20:52:52
添加:
思海網絡
在排除了硬件故障/firmware版本/BIOS等等問題之外, Linux死機通常可能碰到如下幾種情況
1, 如果你的Linux死機的時候控制臺上有亂七八糟的字符。恭喜你,這種情況叫做oops. 通常是Linux kernel認為自己發生了異常造成的。
可以通過oops消息查找出錯的地方。
2, 如果你的機器僵死,那么問題麻煩了。這種時候,通常是Kernel出現了死鎖。Kernel不會知道自己死鎖了,所以不會在屏幕上顯示任何咚咚。
如果運氣好,此時Kernel也許可能能夠響應中斷。不管怎樣,你都無法進一步操作了。
3, 嚴格來說,這第三種情況不算死機,現象如下:輸入命令回車之后命令不能返回任何結果, 但是控制臺對回車可能有相應。但是命令無法結束,也不會有輸出結果。
但是可以換到下一個控制臺, 而且還可以繼續輸入命令,但是輸入命令之后還是沒有輸出。這種情況會有很多可能。通常是應用程序的系統調用長時間沒有返回或者是滿足不了應用的要求。
以上三種情況,system log的作用都不大。通常日志都不會紀錄。所以只能使用Kernel的Debug工具。
不過Linus比較狠,人說Kernel不需要Debug工具。所以kernel.org中的代碼是沒有debug工具的。不過目前絕大多數發行版的kernel都帶了debug工具,而且工具都不一樣。
通常進行kernel debug都需要在出現故障的時候采集vmcore. 就是把故障發生的時memory dump出來。(還記得Windows 藍屏的時候會出現1%-100%跳動的一個數字和c盤dump.sys文件, 這回知道干什么的了吧? ) 然后進行分析。也許你會擔心Linux死機了,還怎么dump memory啊,這個不用擔心,Kernel還是留了好幾條路子。其中一個是NMI。
那么到底怎么dump memory呢? 這里用REDHAT為例,RHEL3,RHEL4中都使用了netdump作為采集工具,RHEL5使用kdump作為采集工具。
采集完畢就可以對vmcore進行分析,步驟就不細說了。可以參考如下文章:http://people.redhat.com/anderson/crash_whitepaper/
但是對于管理員來說,任何一個debug工具都需要代碼開發的經歷才能順利使用。
1, 如果你的Linux死機的時候控制臺上有亂七八糟的字符。恭喜你,這種情況叫做oops. 通常是Linux kernel認為自己發生了異常造成的。
可以通過oops消息查找出錯的地方。
2, 如果你的機器僵死,那么問題麻煩了。這種時候,通常是Kernel出現了死鎖。Kernel不會知道自己死鎖了,所以不會在屏幕上顯示任何咚咚。
如果運氣好,此時Kernel也許可能能夠響應中斷。不管怎樣,你都無法進一步操作了。
3, 嚴格來說,這第三種情況不算死機,現象如下:輸入命令回車之后命令不能返回任何結果, 但是控制臺對回車可能有相應。但是命令無法結束,也不會有輸出結果。
但是可以換到下一個控制臺, 而且還可以繼續輸入命令,但是輸入命令之后還是沒有輸出。這種情況會有很多可能。通常是應用程序的系統調用長時間沒有返回或者是滿足不了應用的要求。
以上三種情況,system log的作用都不大。通常日志都不會紀錄。所以只能使用Kernel的Debug工具。
不過Linus比較狠,人說Kernel不需要Debug工具。所以kernel.org中的代碼是沒有debug工具的。不過目前絕大多數發行版的kernel都帶了debug工具,而且工具都不一樣。
通常進行kernel debug都需要在出現故障的時候采集vmcore. 就是把故障發生的時memory dump出來。(還記得Windows 藍屏的時候會出現1%-100%跳動的一個數字和c盤dump.sys文件, 這回知道干什么的了吧? ) 然后進行分析。也許你會擔心Linux死機了,還怎么dump memory啊,這個不用擔心,Kernel還是留了好幾條路子。其中一個是NMI。
那么到底怎么dump memory呢? 這里用REDHAT為例,RHEL3,RHEL4中都使用了netdump作為采集工具,RHEL5使用kdump作為采集工具。
采集完畢就可以對vmcore進行分析,步驟就不細說了。可以參考如下文章:http://people.redhat.com/anderson/crash_whitepaper/
但是對于管理員來說,任何一個debug工具都需要代碼開發的經歷才能順利使用。
那么,腳本,應用程序會不會導致死機? 當然,但是問題還是出在Kernel上。就比如,應用程序寫文件,系統可能會掛起在kernel中的文件系統代碼上。
關鍵字:Linux、死機原因、Kernel
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解