linux服务器硬盘启动提示死机怎么解决?

linux服务器硬盘启动提示死机怎么解决?,第1张

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

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

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

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

# setterm -blank

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

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

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

准备工作

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

2 一根串口直连线。

配置

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

kernel /boot/vmlinuz-2421-930AXsmp 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 上看看,或换个核心试试)

系统设置

为解决频繁的数据插入和更新问题(这些数据的可靠性要求不高,不需要事务),赶上NoMysql的热潮,选择目前最热门的Mongodb,在测试中充分感受到mongodb安装的简单性和客户端调用API的便捷。

但在生产环境下(操作系统CentOS 62,内存64G,CPU 12核),却出现频繁的宕机,有时候一天就要宕2次,虽然设置了replica sets,却很容易挂掉2台,导致不可用。

查看mongodlog,发现每次宕机时都会打印Got signal: 11 (Segmentation fault),但从这个查找不到能够解决问题的资料。

有人认为mongodb频繁宕机大多数是因为在并发查询的压力下,因为热数据没有在内存中,被迫到文件系统读取数据,很容易出现timeout的问题,之后会造成进程锁死,经过验证,如果把查询(只有通过主键查一条记录的查询)的客户端关闭掉,宕机的概率小非常多。查看每台mongodb的内存(通过mongodb命令控制台的dbserverStatus()看“mem”部分的“resident”),发现mongodb热数据的内存只占用不到2G,而数据文件有近200G,可能也是因为频繁的宕机,导致热数据一直未全部加载。

但还是会出现宕机,为了不需要人工重启,就在每个replica的服务器上用Linux Shell脚本写了一段每隔1分钟检测mongodb进程死掉自动重启的进程,虽然能够解决mongodb一直在运行的状态,但发现mongodb的collections中出现很多损坏的数据,甚至出现一些自动创建的异常collections,如一个collections的名称是“jingdong”,则会出现多个“ingdong”、"jing"、“jingdon”之类的collections。

不得已只好把mongodb的定时检测启动脚本关闭掉,顺着这个现象找问题,终于在mongodb的JIRA看到有个用户反馈的现象跟我们完全一致,最后他解决的方法是把mongodb客户端的java驱动jar包由291回退至280,我们也按照这样处理后,果然不会再出现crash问题。

linux服务器双硬盘优缺点:

优点:硬件上来说,linux可以使用非X86架构的cpu,例如power系列的精简指令集的cpu,另外linux对硬件要求比windows低很多。

缺点:windows很多功能模仿自unix系统,而linux和unix全兼容,所以很多专业服务强过windows很多。

服务器可用性:

Linux服务器利用SLES 12利用“永久在线”功能集诱导企业级IT组织使用Linux服务器操作系统,这些功能包括基于Btrfs的快照、热补丁以及高可用性。

SUSE主席Nils Brauckmann表示,SUSE想打造一个可靠的Linux服务器版本,其更新旨在确保连续不间断服务。

Linux服务器内核更新需要服务器重新启动,就是说Linux服务器管理员无法给关键业务或基本服务器打补丁。即使几分钟的宕机在企业数据中心中也是无法容忍的。这让很多服务器运行着没打补丁的软件,脆弱易受攻击。热补丁解决了这个问题。

数据压缩的确在短时内是比较耗CPU资源的工作,只不过平时压缩工作时长都比较短,大家感觉不出来而已,如果是压缩大文件的话,而且是不止一次的定时任务,是可能会对服务器性能有影响的,但死机应该还不至于吧,负载应该不会大到死机的程度。

Linux系统死机的解决办法

Linux系统死机了怎么办怎样让系统在死机以后如何安全的让他摆脱死机状态,本文讲述如何从 linux 的死机状态中挣脱出来。 Linux 死机有很多种情况,最常见的是系统负载过高导致的。如上次介绍的 fork 炸弹就是这个原理,此外还可以运行内存耗用极大的程序(如虚拟机),也会迅速提升系统负载。由于系统负载过高导致的卡死,一定是解决的越快越好!此时必须 记住的是,不能再试图依赖任何图形界面的东西,如 Gnome 的系统监视器(这是我从 Windows 遗留下来的愚昧习惯……),这只会继续加重这种卡死的局面。那怎么办 不要怕,Linux 最初就是不需要图形界面的,因为有一个很强大的文字界面。按 Ctrl-Alt-F1(F1-F6 一般来说都可以),然后等一会儿,就会切换到 tty,也就是所谓的文字界面。这个时候需要用用户名密码登入。注意,可能键盘输入的速度比较慢,不过应该还是可以忍受的。下面在提示符后面输入 top 回车,这时会看到一张动态的表,上面列出了耗用资源最多的进程。观察它刷新一两次,按q退出,然后输入 kill ,其中的 PID 你可以在 top 里面看到。这个时候应该会快了不少,如果你发现没有成功结束掉,就再输入 kill -KILL ,这次基本上就没问题了。 除了上面这种情况外,一些底层软件的 bug 也可能导致一些奇怪的死机问题。我某位同学近日就因为莫名其妙的死机强制重启把 ext4 的分区给伤了。(最后是 sysreccd 修复了,貌似是分区表部分损坏)据其说,死机是键鼠均无反应。一般来说,系统负载高导致的死机,在可怕键盘也会有反应,有人说如果死机到键盘无响应“负载 都无限大了”,亦有人说这可能是 X Server 与驱动配合有问题导致的。不过我们考虑一下遇到这种情况怎么办 OK,这是今天才学到的方法,叫做 reisub,这个方法可以在各种情况下安全地重启计算机。大家在键盘上找,可以找到一个叫做“Sys Rq”的键,在台机的键盘上通常与 Prt Sc 共键,在笔记本可能在其他位置,如 Delete。以台机为例,要使用这种方法需要按住 Alt-Print(Sys Rq),然后依次按下 reisub 这几个键,按完 b 系统就会重启。 下面解释一下这个方法:其实 Sys Rq 是一种叫做系统请求的东西,按住 Alt-Print 的时候就相当于按住了 Sys Rq 键,这个时候输入的一切都会直接由 Linux 内核来处理,它可以进行许多低级操作。这个时候 reisub 中的每一个字母都是一个独立操作,他们分别表示: unRaw将键盘控制从X Server那里抢回来 tErminate 给所有进程发送 SIGTERM 信号,让他们自己解决善后kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭 Sync将所有数据同步至磁盘 Unmount将所有分区挂载为只读模式 reBoot重启 这6个字母的顺序是不可以记错的。那怎么记呢这里提供一个个人认为比较好的方法:单词 busier(busy 的比较级,更忙)倒过来就是了。 基本上就这样了,Linux 的死机本来就不多见,现在见了也可以安全解决。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux服务器硬盘启动提示死机怎么解决?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情