使用 SysRq 檢視系統資訊

2021-08-08 02:32:55 字數 2969 閱讀 5009

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.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 鍵排除和診斷系統故障》

檢視系統資訊

檢視cpu資訊 cat proc cpuinfo 說明 1.process會從0開始計數,一直持續到結束。可以清楚的看到機器的cpu數目。2.檢視物理cpu關注physical id的值,該值相同的話則表示為同一顆cpu。3.檢視flag標誌,如果有ht標誌,則說明支援超執行緒技術。詳情見本文末尾 ...

檢視系統資訊

檢視cpu資訊 cat proc cpuinfo 說明 1.process會從0開始計數,一直持續到結束。可以清楚的看到機器的cpu數目。2.檢視物理cpu關注physical id的值,該值相同的話則表示為同一顆cpu。3.檢視flag標誌,如果有ht標誌,則說明支援超執行緒技術。詳情見本文末尾 ...

檢視系統資訊

四 檢視當前linux的版本 more etc redhat release cat etc redhat release 五 檢視核心版本 uname r uname a 六 檢視當前時間 date 七 檢視硬碟和分割槽 df h fdisk l 也可以檢視分割槽 du sh 可以看到全部占用的空...