SysRq魔法键的使用

1.SysRq简介
它能够在系统处于极端环境时响应按键并完成相应的处理。这在大多数时候有用。SysRq 经常被称为 Magic System Request,它被
定义为一系列按键组合。之所以说它神奇,是因为它在系统挂起,大多数服务已无法响应的情况下,还能通过按键组合来完成一系列
预先定义的系统操作。

通过它,不但可以在保证磁盘数据安全的情况下重启一台挂起的服务器,避免数据丢失和重启后长时间的文件系统检查,还可以收集
包括系统内存使用,CPU 任务处理,进程运行状态等系统运行信息,甚至还可能在无需重启的情况下挽回一台已经停止响应的服务器。
到目前为止,我们可见到的大多数 SysRq 推荐用法都是系统挂起后的安全重启,用此方法来避免数据丢失。

在下文中,为描述的简洁,SysRq-<?> 均代表 Alt-SysRq-<?> 或者 echo “?” > /proc/sysrq-trigger。
同时按下Alt和Print Screen键以及相应的字母键发送命令:Ubuntu下,图形界面环境不能使用SysRq,需进入文本虚拟终端环境
(Ctrl+Alt+F1从图形桌面切换到虚拟终端,Alt+F7可切回来),

2.启用和关闭SysRq
首先要确保内核打开了CONFIG_MAGIC_SYSRQ配置项,这样SysRq的底层处理才可用。
暂时启用SysRq:echo "0" >/proc/sys/kernel/sysrq
暂时禁用SysRq:echo "1" >/proc/sys/kernel/sysrq

永久禁用SysRqs:在/etc/sysctl.conf中设置kernel.sysrq = 1
永久启用SysRqs:在/etc/sysctl.conf中设置kernel.sysrq = 0

3.安全重启系统
R-E-I-S-U-B 这个序列的推荐使用方式是:R – 1 秒 – E – 30 秒 – I – 10 秒 – S – 5 秒 – U – 5 秒 – B,而不是一气呵成地按
下这六个键,试想一次正常的 reboot 命令也不是在一瞬间完成的吧。

R - 把键盘设置为 ASCII 模式
E - 向除 init 以外所有进程发送 SIGTERM 信号
I - 向除 init 以外所有进程发送 SIGKILL 信号,与 E 类似,因为 syslogd 本身也被结束,除非 netconsole 或串口记录已打开,
否则连上面的信息都无法捕捉。同时,因为 SIGKILL 是不可捕获的信号,/var/log/messages 里面也不会留下任何线索。
S - 磁盘缓冲区同步,该操作会把磁盘缓冲区的数据回写,以防止数据丢失,通常会有一定延时。在能看到输出的情况下,请等到
” Emergency Sync complete ” 过后再继续后续操作。否则,等十秒钟左右,再进行后续 SysRq 操作。
U - 重新挂载为只读模式,该操作会把磁盘重挂载为只读模式,以防止数据的损坏。与 S 类似,该操作通常也有一定延时。请等到
” Emergency Remount complete ” 出现过后再进行后续操作,或者等候十秒钟再进行后续 SysRq 操作。
B - 立即重启系统,该操作会立即重启系统,比想象中要快。

4.结束进程
SysRq 定义了一组与结束进程相关的序列:E-I-K-F,可以用它们来恢复系统挂起。
E - 向所有进程发送 SIGTERM 信号
I - 向所有进程发送 SIGKILL 信号
K - 结束与当前控制台相关的全部进程,该操作结束了文本控制台下正在运行的 top 程序,以及登录的 shell 。
F - 人为触发 OOM Killer,OOM Killer 将根据各进程的内存处理情况选取最合适的“凶手”进程,并向其发送 SIGKILL 信号,中止其运行。
SysRq 输出包括运行栈,内存使用信息,和“凶手”进程的标识信息。在实际情况中,除非可以确认是内存使用问题,尽量避免使用这
个组合键。因为 OOM-Killer 自动挑选的进程不一定是真正的“凶手”。相比之下,SysRq-K 结束的进程更有针对性。

3.获取系统信息
M - 打印内存使用信息,该操作显示了 cpu 相关分区信息,全局页使用情况,分区页使用情况,分区 slab 使用情况,页缓存使用情况,
swap 使用情况等等。
P - 打印当前 CPU 寄存器信息,该操作显示了正在执行的进程名,运行函数,寄存器上下文,以及程序的调用栈回溯等信息。这对于分析
死锁引起的系统挂起有着非常重要的作用。一般来说我们会多采几次重复样本,以便更加准确的做出系统运行状态的判断!
T - 打印进程列表,该操作显示了进程列表,包含各进程的名称,进程 PID,父 PID 及兄弟 PID 等相关信息,以及进程的运行状态。
对于正在运行中的进程(R),没有太多的信息。对于处于睡眠状态的进程,列出其调用栈回溯信息,以便进行调试跟踪。
W - 打印 CPU 信息,该操作显示了每 CPU 的寄存器上下文和程序调用栈回溯信息。
H - 帮助,0--8 - 更改 console_loglevel,Alt-SysRq-6 的输出,它等同于 echo "6" > /proc/sys/kernel/printk 操作,
将console_loglevel 设置为 6 。
C - 触发 Crashdump在大多数情况下,我们通过前面的方法即可完成对系统挂起的基本诊断和数据收集。但是在一些特殊情况下,我们仍然
需要一份完整的 crashdump 。毕竟 crashdump 包含比 SysRq – MPT 更多的信息,以利用后期做故障分析。
N - 降低实时任务运行优化级,这对于由实时任务消耗 CPU 引起的系统挂起会起到立竿见影的作用。
O - 关机,该操作会立即关机,一般很少使用。在必要的情况下,也推荐跟随 S – U 一起使用。

参考:http://www.baidu.com/link?url=dDrEfDXtmLeBMPLtR-UF-ZGNhHwGkz0RRaOZkdqa9jBqVryPkHHv7quJqFBvJqeeEXZPQPvKCf8nDMOd-8mUjq&wd=&eqid=e5790bd10001a856000000065b17fe30

SysRq魔法键的使用的更多相关文章

  1. Linux中SysRq的使用(魔术键)

    转:http://www.chinaunix.net/old_jh/4/902287.html 魔术键:Linux Magic System Request Key Hacks 当Linux 系统不能 ...

  2. Sysrq 诊断系统故障 与 gdb 调试core dump

    1. 典型应用场景如:    1)系统进入了挂死状态(如调度出现异常.或系统负荷过重),但仍能响应中断,此时可以通过Sysrq魔术键(c)手工触发panic,结合kdump,就能收集到vmcore信息 ...

  3. /proc/sys/kernel/sysrq /proc/sysrq-trigger----强制重启/触发器

    LINUX远程强制重启/proc/sys/kernel/sysrq /proc/sysrq-trigger----触发器 ttp://blog.csdn.net/beckdon/article/det ...

  4. [Debug]驱动程序调测方法与技巧

    转自:http://blog.csdn.net/lichangc/article/details/43272457 驱动程序开发的一个重大难点就是不易调试.本文目的就是介绍驱动开发中常用的几种直接和间 ...

  5. Ubuntu死机解决方法汇总

    为什么不建议强制关机 如果长按电源按键强制关机,有可能损坏硬件或者丢失数据,甚至导致磁盘坏道! 其实, 大部分时候的死机是假死, 不是真死... 有时候鼠标还能动呢. 还有一个原因: 对于平时忠贞不二 ...

  6. ubuntu使用备忘

    今天在一个古董机子上(03年的)安装了lubuntu14.04,内存512M,奔腾处理器,好像是什么迅驰不支持linux需要的某项技术pae,安装时提示cpu不支持pae,但可以在内核参数中添加for ...

  7. linux配置文件的一些调优

    Linux中所有东西都是文件,一个socket就对应着一个文件描述符,因此系统配置的最大打开文件数以及单个进程能够打开的最大文件数就决定了socket的数目上限:但是linux是有文件句柄限制的,而且 ...

  8. sysctl.conf和limit.conf备忘待查

    #################################limits.conf设置################################### #修改最大进程和最大文件打开数限制v ...

  9. Deepin Linux系统的日常使用总结(日常施工)

    1.登录root权限用户 sudo su 2.安装软件语句 apt-get install <package_name> 相对的, 安装:apt-get install <packa ...

随机推荐

  1. English trip -- Review Unit2 At school 在学校

    What do you need,Loki? I need an eraser What does he need? He needs a dictionary Where's my pencil? ...

  2. 013 - 关于GC root: Native Stack | MAT分析

      Question:   I have some third library code that I run and after some time I run into OutOfMemoryEr ...

  3. 莫比乌斯反演学习笔记(转载自An_Account大佬)

    转载自An_Account大佬 提示:别用莫比乌斯反演公式,会炸的 只需要记住: [gcd(i,j)=1]=∑d∣gcd(i,j)μ(d)[gcd(i,j)=1]=\sum_{d|gcd(i,j)}\ ...

  4. qbxt联赛集训d1t3

    题意 给出一个长度为n的序列,求所有区间的区间最小值乘区间最大值的和.(n<=1e5) solution:

  5. bzoj3262: 陌上花开 三维偏序cdq分治

    三维偏序裸题,cdq分治时,左侧的x一定比右侧x小,然后分别按y排序,对于左侧元素按y大小把z依次插入到树状数组里,其中维护每个左侧元素对右侧元素的贡献,在bit查询即可 /************* ...

  6. Oracle性能诊断艺术-读书笔记(脚本dbms_xplan_output截图-非常好的)

  7. 32. Longest Valid Parentheses *HARD*

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

  8. UVALive 5846 计数

    DES:给出任意两点之间连线的颜色.问一共会有多少个由相同颜色的边组成的三角形. 一共有C(3, n)个三角形.考虑一每个点为顶点的三角形.颜色不同的两条边组成的三角形一定不行.所以减去. 题目链接: ...

  9. 快速切题 sgu116. Index of super-prime bfs+树思想

    116. Index of super-prime time limit per test: 0.25 sec. memory limit per test: 4096 KB Let P1, P2, ...

  10. python自动化运维之路04

    装饰器 装饰器(decorator)是一种高级Python语法.装饰器可以对一个函数.方法或者类进行加工.在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象 ...