linux启动startinghpssd:死机

linux启动startinghpssd:死机,第1张

如果问题能够再现,那么问题已经解决 80% 了。对于 *** 作系统核心而言,如果有问题的再现方法,那么可以说是已经解决 99% 了。经常遇到的问题是系统可以正常运行一段时间,然后死机。如果不好再现问题,那么只有根据死机现场遗留的东西来进行分析了。

如果系统没有死干净,比如磁盘中断和文件系统是好的,那么也许能有日志信息保留在文件中,不过这样的好运气我是从来没有遇到过的。如果键盘中断还能响应 (按下Num Lock,可以看见键盘小灯亮灭),那么运气就算是足够好了,这时可以祭出 sysrq 大法,同时按下 Alt-Sysrq-T 获得进程系统堆栈信息,按下 Alt-Sysrq-M 获得内存分配信息,按下 Alt-Sysrq-W 获得当前寄存器信息。

linux/Documentation/sysrq.txt。另外,最好关闭终端的自动 blank 功能,这样系统死的时候至少能从屏幕上看到一些信息。设置方法是:

# echo 1 >/proc/sys/kernel/sysrq

# setterm -blank

这两个设置最好加到系统启动脚本中 (比如 /etc/rc.d/rc.local),保证每次启动都能得到运行。

如果很不幸,键盘也死悄悄了,(更为不幸的是,这种情况很常见),那么也不是只有等死一个办法,这时可以用串口终端 (serial console)将系统信息发送

到另一台系统上,这样可以通过对这些信息分析来定位问题。设置方法如下:

准备工作

1. 一台被监视的服务器,一台进行监视工作的PC。

2. 一根串口直连线。

配置

1. 在服务器上,加入一个新的 grub 项目,增加核心参数 "console=ttyS0 console=tty1",如:

kernel /boot/vmlinuz-2.4.21-9.30AXsmp ro root=LABEL=/1 console=ttyS0

console=tty1

2. 在服务器上,修改 /etc/sysconfig/syslog,加入 klogd 选项 "-c 7",保证更多内核信息得到输出。如:

KLOGD_OPTIONS="-x -c 7"

3. 重新启动服务器

4. 用串口直连线连接两台机器,测试:

1) 在PC上运行 "cat /dev/ttyS0",在服务器上运行 "echo hi >/dev/ttyS0",看在 PC 上是否有 "hi" 输出。

2) 在PC上运行 "cat /dev/ttyS0",在服务器上运行 "echo w >/proc/sysrq-trigger",看 PC 上是否有相应内核信息输出。

3) 在PC上运行 "cat /dev/ttyS0",在服务器上运行 "modprobe loop",看 PC 上是否有相应内核信息输出。

5. 如果测试通过,那么在 PC 上运行:cat /dev/ttyS0 | tee /tmp/result

另外,也可以用 Windows 超级终端获得串口信息。

that’s it.

此外,一些核心支持 LKCD, netdump 等调试功能,也可以一试。

剩下的,就只有靠经验和运气了,一般造成 Linux 系统死机的原因有:

系统硬件问题 (SCSI 卡,主板,RAID 卡,网卡,硬盘...)

外围硬件问题 (终端切换器,网络...)

软件问题

驱动 bug (去找更新的驱动试试)

核心系统 bug (去 LKML 上看看,或换个核心试试)

系统设置

计算机重新启动

一、软件方面

1.病毒

“冲击波”病毒发作时还会提示系统将在60秒后自动启动。

木马程序从远程控制你计算机的一切活动,包括让你的计算机重新启动。

清除病毒,木马,或重装系统。

2.系统文件损坏

系统文件被破坏,如Win2K下的KERNEL32.DLL,Win98 FONTS目录下面的字体等系统运行时基本的文件被破坏,系统在启动时会因此无法完成初始化而强迫重新启动。

解决方法:覆盖安装或重新安装。

3.定时软件或计划任务软件起作用

如果你在“计划任务栏”里设置了重新启动或加载某些工作程序时,当定时时刻到来时,计算机也会再次启动。对于这种情况,我们可以打开“启动毕睿�觳槔锩嬗忻挥凶约翰皇煜さ闹葱形募�蚱渌�ㄊ惫ぷ鞒绦颍��淦帘魏笤倏��觳椤5比唬�颐且部梢栽凇霸诵小崩锩嬷苯邮淙搿癕sconfig”命令选择启动项。

二、硬件方面

1.机箱电源功率不足、直流输出不纯、动态反应迟钝。

用户或装机商往往不重视电源,采用价格便宜的电源,因此是引起系统自动重启的最大嫌疑之一。

①电源输出功率不足,当运行大型的3D游戏等占用CPU资源较大的软件时,CPU需要大功率供电时,电源功率不够而超载引起电源保护,停止输出。电源停止输出后,负载减轻,此时电源再次启动。由于保护/恢复的时间很短,所以给我们的表现就是主机自动重启。

②电源直流输出不纯,数字电路要求纯直流供电,当电源的直流输出中谐波含量过大,就会导致数字电路工作出错,表现是经常性的死机或重启。

③CPU的工作负载是动态的,对电流的要求也是动态的,而且要求动态反应速度迅速。有些品质差的电源动态反应时间长,也会导致经常性的死机或重启。

④更新设备(高端显卡/大硬盘/视频卡),增加设备(刻录机/硬盘)后,功率超出原配电源的额定输出功率,就会导致经常性的死机或重启。

解决方法:现换高质量大功率计算机电源。

2.内存热稳定性不良、芯片损坏或者设置错误

内存出现问题导致系统重启致系统重启的几率相对较大。

①内存热稳定性不良,开机可以正常工作,当内存温度升高到一定温度,就不能正常工作,导致死机或重启。

②内存芯片轻微损坏时,开机可以通过自检(设置快速启动不全面检测内存),也可以进入正常的桌面进行正常 *** 作,当运行一些I/O吞吐量大的软件(媒体播放、游戏、平面/3D绘图)时就会重启或死机。

解决办法:更换内存。

③把内存的CAS值设置得太小也会导致内存不稳定,造成系统自动重启。一般最好采用BIOS的缺省设置,不要自己改动。

3.CPU的温度过高或者缓存损坏

①CPU温度过高常常会引起保护性自动重启。温度过高的原因基本是由于机箱、CPU散热不良,CPU散热不良的原因有:散热器的材质导热率低,散热器与CPU接触面之间有异物(多为质保帖),风扇转速低,风扇和散热器积尘太多等等。还有P2/P3主板CPU下面的测温探头损坏或P4 CPU内部的测温电路损坏,主板上的BIOS有BUG在某一特殊条件下测温不准,CMOS中设置的CPU保护温度过低等等也会引起保护性重启。

②CPU内部的一、二级缓存损坏是CPU常见的故障。损坏程度轻的,还是可以启动,可以进入正常的桌面进行正常 *** 作,当运行一些I/O吞吐量大的软件(媒体播放、游戏、平面/3D绘图)时就会重启或死机。

解决办法:在CMOS中屏蔽二级缓存(L2)或一级缓存(L1),或更换CPU排除。

4.AGP显卡、PCI卡(网卡、猫)引起的自动重启

①外接卡做工不标准或品质不良,引发AGP/PCI总线的RESET信号误动作导致系统重启。

②还有显卡、网卡松动引起系统重启的事例。

5. 并口、串口、USB接口接入有故障或不兼容的外部设备时自动重启

①外设有故障或不兼容,比如打印机的并口损坏,某一脚对地短路,USB设备损坏对地短路,针脚定义、信号电平不兼容等等。

②热插拔外部设备时,抖动过大,引起信号或电源瞬间短路。

6.光驱内部电路或芯片损坏

光驱损坏,大部分表现是不能读盘/刻盘。也有因为内部电路或芯片损坏导致主机在工作过程中突然重启。光驱本身的设计不良,FireWare有Bug。也会在读取光盘时引起重启。

7.机箱前面板RESET开关问题

机箱前面板RESET键实际是一个常开开关,主板上的RESET信号是 5V电平信号,连接到RESET开关。当开关闭合的瞬间, 5V电平对地导通,信号电平降为0V,触发系统复位重启,RESET开关回到常开位置,此时RESET信号恢复到 5V电平。如果RESET键损坏,开关始终处于闭合位置,RESET信号一直是0V,系统就无法加电自检。当RESET开关d性减弱,按钮按下去不易d起时,就会出现开关稍有振动就易于闭合。从而导致系统复位重启。

解决办法:更换RESET开关。

还有机箱内的RESET开关引线短路,导致主机自动重启。

8. 主板故障

主板导致自动重启的事例很少见。一般是与RESET相关的电路有故障;插座、插槽有虚焊,接触不良;个别芯片、电容等元件损害。

三、其他原因

1.市电电压不稳

①计算机的开关电源工作电压范围一般为170V-240V,当市电电压低于170V时,计算机就会自动重启或关机。

解决方法:加稳压器(不是UPS)或130-260V的宽幅开关电源。

②电脑和空调、冰箱等大功耗电器共用一个插线板的话,在这些电器启动的时候,供给电脑的电压就会受到很大的影响,往往就表现为系统重启。

解决办法就是把他们的供电线路分开。

2.强磁干扰

不要小看电磁干扰,许多时候我们的电脑死机和重启也是因为干扰造成的,这些干扰既有来自机箱内部CPU风扇、机箱风扇、显卡风扇、显卡、主板、硬盘的干扰,也有来自外部的动力线,变频空调甚至汽车等大型设备的干扰。如果我们主机的搞干扰性能差或屏蔽不良,就会出现主机意外重启或频繁死机的现象。

3、交流供电线路接错

有的用户把供电线的零线直接接地(不走电度表的零线),导致自动重启,原因是从地线引入干扰信号。

4.插排或电源插座的质量差,接触不良。

电源插座在使用一段时间后,簧片的d性慢慢丧失,导致插头和簧片之间接触不良、电阻不断变化,电流随之起伏,系统自然会很不稳定,一旦电流达不到系统运行的最低要求,电脑就重启了。解决办法,购买质量过关的好插座。

5. 积尘太多导致主

一、硬件问题

可以考虑分析以下几点:

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看看,或更换核心再试)

系统设置(恢复到缺省状态,关闭防火墙等)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8387954.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存