linux系统死机情况分析与处理方案介绍
2012-01-19 12:55
288 查看
我们在使用Linux系统的时候会发现系统没有响应出现死机现象。这个时候要做些什么呢?说到这有人就会问,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
中的每一个字母都是一个独立操作,他们分别表示:
R:unRaw
将键盘控制从 X Server
那里抢回来
E:tErminate
给所有进程发送 SIGTERM
信号,让他们自己解决善后
I:kIll
给所有进程发送 SIGKILL
信号,强制他们马上关闭
S:Sync
将所有数据同步至磁盘
U:Unmount
将所有分区挂载为只读模式
B:reBoot
重启
这6个字母的顺序是不可以记错的。那怎么记呢?这里提供一个个人认为比较好的方法:单词 busier(busy
的比较级,更忙)倒过来就是了。
死机?不合适吧。真死机了除了hard reset还能干什么?叫失去响应或者无响应更合适吧?
另外服务器一般都是远程操作的,sysrq怎么用呢?
X挂掉,通常psuedo console就能搞定。通常大家也会开ssh,绝大多数情况下都能连上去杀进程,做重启前的收尾比如sync来commit。
关于sysrq,通常RHEL/OEL等EnterpriseLinux系统默认都是关闭的需要事先开启才可以用。
cat /proc/sys/kernel/sysrq,看了手头的几个桌面发行版本,只有ubuntu默认是开的,Arch是关闭的。
对于桌面用户而言,当桌面僵死时,用这个来搞一下,还是很方便的。
如果不想重启而只想恢复系统挂起,就用eikf
E - 向所有进程发送SIGTERM信号
I - 向所有进程发送SIGKILL信号
K - 结束与当前控制台相关的全部进程
F - 人为触发 OOM Killer
OOM Killer 将根据各进程的内存处理情况选取最合适的“凶手”进程,并向其发送 SIGKILL 信号,中止其运行。
引用:kmplayer.cn/archives/1571/
引用:http://forum.ubuntu.org.cn/viewtopic.php?f=77&t=297077
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
中的每一个字母都是一个独立操作,他们分别表示:
R:unRaw
将键盘控制从 X Server
那里抢回来
E:tErminate
给所有进程发送 SIGTERM
信号,让他们自己解决善后
I:kIll
给所有进程发送 SIGKILL
信号,强制他们马上关闭
S:Sync
将所有数据同步至磁盘
U:Unmount
将所有分区挂载为只读模式
B:reBoot
重启
这6个字母的顺序是不可以记错的。那怎么记呢?这里提供一个个人认为比较好的方法:单词 busier(busy
的比较级,更忙)倒过来就是了。
死机?不合适吧。真死机了除了hard reset还能干什么?叫失去响应或者无响应更合适吧?
另外服务器一般都是远程操作的,sysrq怎么用呢?
X挂掉,通常psuedo console就能搞定。通常大家也会开ssh,绝大多数情况下都能连上去杀进程,做重启前的收尾比如sync来commit。
关于sysrq,通常RHEL/OEL等EnterpriseLinux系统默认都是关闭的需要事先开启才可以用。
cat /proc/sys/kernel/sysrq,看了手头的几个桌面发行版本,只有ubuntu默认是开的,Arch是关闭的。
对于桌面用户而言,当桌面僵死时,用这个来搞一下,还是很方便的。
如果不想重启而只想恢复系统挂起,就用eikf
E - 向所有进程发送SIGTERM信号
I - 向所有进程发送SIGKILL信号
K - 结束与当前控制台相关的全部进程
F - 人为触发 OOM Killer
OOM Killer 将根据各进程的内存处理情况选取最合适的“凶手”进程,并向其发送 SIGKILL 信号,中止其运行。
引用:kmplayer.cn/archives/1571/
引用:http://forum.ubuntu.org.cn/viewtopic.php?f=77&t=297077
相关文章推荐
- Linux系统死机情况分析与处理方案介绍
- Linux系统死机情况分析与处理方案介绍
- Linux系统死机情况分析与处理方案介绍
- Linux系统死机情况分析与处理方案介绍(by 小球)
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- 文件系统管理 之 Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之一--BOOTLOADER介绍
- Linux系统日志介绍分析
- Linux系统内核分析实验——system_call中断处理过程
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- 用户行为分析业务系统日志处理方案
- Linux 查看磁盘分区、文件系统、磁盘的使用情况相关的命令和工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之一--BOOTLOADER介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍