使用 SysRq 查看系统信息

Qidi 2017.08.31 (Markdown & Haroopad)


前言:因为看到有同事使用了 SysRq 的技巧进行 debug,虽然我目前还没有使用过,但为了便于以后使用也为了备忘,所以在这里简要记录一下。更详细的说明可以阅读文末所列参考文章。


1、SysRq 是什么

  在某些键盘上我们可以看到 SysRq 键,通过按下这个键和其它字母的组合,我们可以在系统挂起时仍然响应某些命令,从而确保系统能正确保存好数据并关机或重启。在 2.5.64 版本后的 Linux 系统中,在系统宕机时我们还可以向 /proc/sysrq-trigger 节点写入一些命令来使计算机实现前述操作。


2、查看 SysRq 帮助信息

  向 /proc/sysrq-trigger 节点写入任何未定义的内容都会让 SysRq 打印出帮助信息。因为预定义的命令都是单字符或数字,所以我们可以执行如下命令来查看可以使用的命令说明:

# echo help > /proc/sysrq-trigger

  我的平台所使用的 Linux 内核版本为 4.9,在其上执行上述命令后可以看到以下打印:

[  197.237795@2] sysrq: SysRq : HELP :
loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) show-blocked-tasks(w) dump-ftrace-buffer(z) 

  括号中的字母或数字就是我们可以写入节点的内容,也是对应各命令的简称。


3、常用命令

  有一些命令是我们常用的,这里单独罗列一下。

3.1、查看内存使用情况

  实际工作中排查问题时我们可能会经常查看设备的内存使用情况。可以使用下面命令打印设备上的内存使用信息:

# echo m > /proc

  在我的平台上该命令的执行结果如下:

[  615.461924] sysrq: SysRq : Show Memory
[  615.462218] Mem-Info:
[  615.462369] active_anon:90892 inactive_anon:3708 isolated_anon:0\x0a active_file:153787 inactive_file:143068 isolated_file:0\x0a unevictable:934 dirty:8 writeback:0 unstable:0\x0a slab_reclaimable:10940 slab_unreclaimable:12460\x0a mapped:127077 shmem:2319 pagetables:6891 bounce:0\x0a driver_cma:22640 free:26472 free_pcp:660 free_cma:7205
[  615.462514] Node 0 active_anon:363568kB inactive_anon:14832kB active_file:615148kB inactive_file:572272kB unevictable:3736kB isolated(anon):0kB isolated(file):0kB mapped:508308kB dirty:32kB writeback:0kB shmem:9276kB writeback_tmp:0kB unstable:0kB pages_scanned:0 all_unreclaimable? no
[  615.462695] DMA free:105888kB min:4980kB low:6528kB high:8076kB active_anon:363568kB inactive_anon:14832kB active_file:615148kB inactive_file:572272kB unevictable:3736kB writepending:32kB present:2096128kB managed:2040096kB mlocked:256kB slab_reclaimable:43760kB slab_unreclaimable:49840kB kernel_stack:19616kB pagetables:27564kB bounce:0kB free_pcp:2640kB local_pcp:724kB free_unmovable:11308kB free_movable:64072kB free_reclaimable:1072kB free_highatomic:616kB free_isolate:0kB free_cma:28820kB
[  615.462740] lowmem_reserve[]: 0 0 0
[  615.462959] DMA: 5070*4kB (UMEHC) 2373*8kB (UMEHC) 1344*16kB (UMEHC) 520*32kB (UMEHC) 199*64kB (UMEHC) 51*128kB (UMEHC) 12*256kB (UMHC) 4*512kB (UM) 0*1024kB 0*2048kB 1*4096kB (U) = 105888kB
[  615.464658] 300033 total pagecache pages
[  615.464721] 0 pages in swap cache
[  615.464781] Swap cache stats: add 0, delete 0, find 0/0
[  615.464832] Free swap  = 511996kB
[  615.464881] Total swap = 511996kB
[  615.464933] 524032 pages RAM
[  615.464983] 0 pages HighMem/MovableOnly
[  615.465033] 14008 pages reserved
[  615.465083] 120832 pages cma reserved

3.2、组合命令

  系统挂起时,一个可以保证数据安全的方式是使用 SysRq 命令序列 R-E-I-S-U-B 来重启计算机。各命令之间的等待时间为 R – 1 秒 – E – 30 秒 – I – 10 秒 – S – 5 秒 – U – 5 秒 – B


4、参考资料

[1] 《利用 SysRq 键排除和诊断系统故障》

使用 SysRq 查看系统信息相关推荐

  1. linux查看软件包信息,Linux查看系统信息的一些命令及查看已安装软件包的命令...

    Linux查看系统信息的一些命令及查看已安装软件包的命令 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat ...

  2. 命令获取计算机信息,教你怎么在windows上用命令查看系统信息

    很多时候,我们想写一个批处理脚本,让它显示我们的操作系统信息,却又不知道怎么做.下面是学习啦小编跟大家分享的是教你怎么在windows上用命令查看系统信息,欢迎大家来阅读学习. 教你怎么在window ...

  3. windows 10 systeminfo命令查看系统信息

    一般情况下我们可以通过windows10的任务管理器查看系统信息,或者使用命令systeminfo: c:\Code \git>systeminfo Host Name:oS Name: os ...

  4. linux检查系统硬件信息命令,Linux查看系统信息(硬件信息, 系统设置信息等) 命令 | Soo Smart!...

    Linux 查看系统信息命令是linux初学者必备的基础知识, 这些命令也非常有用, 因为进入linux第一件事就可能是首先查看系统信息, 因此必要的系统的学习一下这些linux系统信息命令还是非常有 ...

  5. linux操作系统中查看网络信息的命令,Linux查看系统信息命令盘点

    Linux查看系统信息命令盘点 在Linux系统上有很多操作都是用命令完成的,下面跟yjbys小编一起来看看最新的系统命令吧,希望对大家有所帮助! 1.查看系统内核 uname -a uname -r ...

  6. sql server内置存储过程、查看系统信息

    1.检索关键字:sql server内置存储过程,sql server查看系统信息 2.查看磁盘空间:EXEC master.dbo.xp_fixeddrives , --查看各个数据库所在磁盘情况S ...

  7. CentOS查看系统信息命令和方法

    收集整理的一些linux查看系统信息的命令和方法: 一.linux查看服务器系统信息的方法: 1.查看主机名/内核版本/CPU构架: # uname -n -r -p -o localhost.loc ...

  8. linux 查看系统信息命令

    linux 查看系统信息命令是linux初学者必备的基础知识, 这些命令也非常有用, 因为进入linux第一件事就可能是首先查看系统信息, 因此必要的系统的学习一下这些linux系统信息命令还是非常有 ...

  9. 小技巧:systeminfo查看系统信息

    systeminfo是Windows中查看系统信息的小工具,对了解系统硬件与软件情况非常有用.可以清楚的了解到当前系统的安装日期,与当前运行时间.最近在玩游戏,装的是XP系统,Windows 7在等R ...

最新文章

  1. 如何解决IE地址栏前小图标不显示问题
  2. css阴影属性_第三场阴影场与属性访问器接口
  3. 简述计算机图形的图形应用主要有哪些,5计算机图形学考试简答题复习.doc
  4. 24 OB22无法修改公司代码的附加本位币从EUR到CNY
  5. Fedora 17 安装视频
  6. matlab mxarray赋值,C++中数组与MATLAB mxArray相互赋值
  7. virtualbox+vagrant快速创建虚拟机
  8. python爬虫项目描述怎么写_爬虫项目咋写,爬取什么样的数据可以作为项目写在简历上?...
  9. 《你的灯亮着吗》读书笔记一
  10. Docker在centos下安装以及常见错误解决
  11. aspupload中文文件名乱码解决
  12. linux centos 光盘修复,CentOS 系统修复
  13. 你自己的毛茸茸的大主教
  14. 积性函数是什么 超级明白的敷衍介绍
  15. python 制作工资条
  16. [SSL_CHX][2021-8-18]量身高
  17. Premature end of Content-Length delimited message body 报错原因
  18. 高德地图教程_poi搜索以及显示
  19. CRC-16/MODBUS x16+x15+x2+1校验计算 C++
  20. [易飞]如何实现同单据两种不同凭证设计方式?(只打印单头单尾金额,多页最后一页面显示金额)

热门文章

  1. NFC:跟现金和信用卡说不
  2. 2004版最新核心期刊目录
  3. QImage图像格式解读
  4. 搬砖:数据结构之链表基本操作总结
  5. 920记者招待会: 对话详解海尔张瑞敏首席的人单合一
  6. iOS接入Google登录
  7. 【窗体控件】:Button按钮控件
  8. PyCharm使用手册
  9. jq将数据库数据显示在select标签上
  10. 稀疏编码(sparsecode)简单理解