代码驿站移动版
频道导航
HTML/Xhtml
CSS
JavaScript
HTML5
PHP教程
ASP.NET
正则表达式
AJAX
ThinkPHP
Yii
MySQL
MariaDB
Oracle
MongoDB
Redis
DedeCMS
PHPCMS
帝国CMS
WordPress
Discuz
其它CMS
Zend Studio
Sublime
Notepad
Dreamweaver
Windows
Linux
Nginx
Apache
IIS
CentOS
Ubuntu
Debian
网站优化
工具资源
PHP源码
ASP.NET源码
其它源码
图标素材
按钮素材
字体素材
DedeCMS模板
帝国CMS模板
PHPCMS模板
WordPress模板
Discuz!模板
单页模板
开发软件下载
服务器软件下载
广告投放
联系我们
版权申明
软件编程
网页前端
移动开发
数据库
服务器
脚本语言
PHP代码
JAVA代码
Python代码
Android代码
当前位置:
主页
>
服务器
>
Linux
>
linux 死机日志分析
时间:2021-06-22 09:34:50 | 栏目:
Linux
| 点击:次
系统出现死机,一般分为两种情况:一是硬件问题;二是软件问题。
一、硬件问题
可以考虑分析以下几点:
1、不要超频CPU,如果已经超频的先回复到原来的频率
虽然平时运行没有问题,但可能在高负载的使用中就会出现不可预料的故障了。特别是linux系统在某些应用上,是可以把硬件的性能发挥到极限的,但这样的硬件运行Windows可能是没有问题的。
2、确认电源供电充足
必须确保在高负载的状态下,电源可以满足负载。
3、使用memtest86检查内存状态
4、恢复BIOS到默认状态
对于服务器,可以使用自带的监测工具进行测试,也是一个不错的排错方法。
二、软件问题
如果已经基本排除硬件问题,那我们就必须考虑从软件上去获得死机状态的系统信息了。
1、运气足够好的话,系统死机不一定是完全死掉(此时键盘可能还能响应),那我们就可以使用Sysrq大法。
前提是我们必须先打开sysrq功能:
#echo "1" > /proc/sys/kernel/sysrq
#setterm -blank
这样,当系统出现问题的时候,我们可以使用:
引用
Alt+Sysrq-T 获得进程系统堆栈信息
Alt+Sysrq-M 获得内存分配信息
Alt+Sysrq-W 获得当前寄存器信息
更多的热键可以参考系统上的/usr/src/linux/Documentaion/sysrq.txt
其中,setterm -blank可以关闭字符下定时黑屏保护,方便记录屏幕信息。
2、为了让屏幕显示更多的内核调试信息,可以修改控制台的显示模式为80x25,在/boot/grub/menu.lst中对应的kernel一行最后,增加vga=0x305,如:
引用
kernel /boot/vmlinuz-2.4.21-9.30AXsmp ro root=/LABEL=/1 vga=0x305
3、万一键盘也不幸死掉了,那我们只能采用串口方式,把系统信息发送到另一台系统上,方法:
修改/boot/grub/menu.lst文件,在kernel一行最后增加核心参数"console=ttyS0 console=tty1",如:
引用
kernel /boot/grub/vmlinuz-2.4.21-9.30AXsmp ro root=/LABEL=/1 console=ttyS0 console=tty1
然后,修改/etc/sysconfig/syslog,加入klogd选项"-c 7",如:
引用
KLOGD_OPTIONS="-x -c 7"
重启服务器;进行测试:
1)使用串口直连线连接客户机和服务器,在客户机上运行:
cat /dev/ttyS0
服务器上运行:
echo hi > /dev/ttyS0
如果客户机有"hi"输出即可。
2)服务器上运行:
echo w > /proc/sysrq-trigger
看看客户机上是否有相应的内核信息输出
3)服务器上运行:
modprobe loop
看看客户机上是否有相应的内核信息输出
如果测试都通过的话,那么在客户机上运行:
cat /dev/ttyS0 | tee /tmp/result
当死机出现的时候,我们就可以从客户机上看到需要的内核信息了(查看/tmp/result)。
三、总结
一般造成Linux系统死机的原因有:
系统硬件问题(SCSI卡,主板,RAID卡,HBA卡,网卡,硬盘等)
外围硬件问题(网络等)
软件问题(系统、应用软件)
驱动bug(找新的驱动)
核心系统bug(到LKML看看,或更换核心再试)
系统设置(恢复到缺省状态,关闭防火墙等)
您可能感兴趣的文章:
详解如何在 CentOS 7 中安装或升级最新的内核
wamp2.2e 64位 curl 开启不了的解决办法
Linux低电量自动关机的实现方法
Linux 逻辑卷管理(LVM)使用方法总结
linux查看用过的命令方法总结
相关文章
12-09
Linux下实现UTF-8和GB2312互相转换的方法
10-25
linux系统用户管理与grep正则表达式示例教程
11-16
Centos系统中彻底删除Mysql数据库步骤
11-01
Linux使用Cron+AT实现在某个确定的时间段内随机执行命令
12-04
阿里云ECS实例设置用户root密码和远程连接的方法
JQuery
VUE
AngularJS
MSSql
MySQL
MongoDB
Redis
Linux
Tomcat
Nginx
网站首页
广告投放
联系我们
版权申明
联系站长