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 可以看到全部占用的空...