麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Linux Shell > 正文

Linux中獲取某個進程的系統(tǒng)調(diào)用以及參數(shù)(故障排查案例)

2020-07-27 19:16:07
字體:
供稿:網(wǎng)友

當一個程序發(fā)生故障時,有時候想通過了解該進程正在執(zhí)行的系統(tǒng)調(diào)用來排查問題。通常可以用 strace 來跟蹤。但是當進程已經(jīng)處于 D 狀態(tài)(uninterruptible sleep)時,strace 也幫不上忙。這時候可以通過

復(fù)制代碼 代碼如下:
cat /proc/<PID>/syscall

來獲取當前的系統(tǒng)調(diào)用以及參數(shù)。


這里用最近排查的一個問題為例。碰到的問題是,發(fā)現(xiàn)一臺服務(wù)器在執(zhí)行 pvcreate 創(chuàng)建物理卷的時候卡死,進程狀態(tài)為 D

復(fù)制代碼 代碼如下:

# ps aux|grep pvcreate
root      8443  0.0  0.0  27096  2152 ?        D    Apr04   0:00 pvcreate /dev/sddlmac
...


D 狀態(tài)實際是在等待系統(tǒng)調(diào)用返回。那么來看看究竟在等待什么系統(tǒng)調(diào)用

復(fù)制代碼 代碼如下:

B0313010:~ # cat /proc/8443/syscall
0 0x7 0x70f000 0x1000 0x0 0x7f33e1532e80 0x7f33e1532ed8 0x7fff3a6b8718 0x7f33e128cf00

第一個數(shù)字是系統(tǒng)調(diào)用號,后面是參數(shù)。不同的系統(tǒng)調(diào)用所需的參數(shù)個數(shù)不同。這里的字段數(shù)是按最大參數(shù)數(shù)量來的,所以不一定每個參數(shù)字段都有價值。那么怎么知道系統(tǒng)調(diào)用號對應(yīng)哪個系統(tǒng)調(diào)用呢?在頭文件 /usr/include/asm/unistd_64.h 中都有定義。也可以用個小腳本來快速查找:

復(fù)制代碼 代碼如下:

#!/bin/bash
# usage: whichsyscall <syscall_nr>
nr="$1"
file="/usr/include/asm/unistd_64.h"
gawk '$1=="#define" && $3=="'$nr'" {sub("^__NR_","",$2);print $2}' "$file"


對于不同的系統(tǒng)調(diào)用的參數(shù),可以通過 man 2 <系統(tǒng)調(diào)用名> 查閱。如 man 2 read。對剛才那個例子來說,0 就對應(yīng)了 read 調(diào)用。而 read 調(diào)用的第一個參數(shù)是文件描述符。

之后用 lsof 找到 7 對應(yīng)的是什么文件

復(fù)制代碼 代碼如下:

#  lsof -p 8443
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
......
pvcreate 8443 root    5u   CHR 10,236      0t0    19499 /dev/mapper/control
pvcreate 8443 root    6u   BLK  253,1   0t8192 36340797 /dev/dm-1
pvcreate 8443 root    7u   BLK  253,5      0t0 35667968 /dev/dm-5

結(jié)果發(fā)現(xiàn)是個 device mapper 的設(shè)備文件。最后順藤摸瓜,發(fā)現(xiàn)這個文件是 multipathd 創(chuàng)建的。而系統(tǒng)應(yīng)當使用的是存儲廠商提供的多路徑軟件。問題是由于同時開啟了 multipathd 造成沖突導致的。

/proc/<PID>/syscall 對排查 D 狀態(tài)進程很有用。不過在 2.6.18 內(nèi)核上并不支持,具體從哪個內(nèi)核版本開始有這個功能,還沒查到。不過至少從在 2.6.32 以上版本都是支持的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人毛片视频在线观看 | www.成人免费视频 | 中文欧美日韩 | 超碰人人做人人爱 | 黑人一级片 | 日韩视频www | 成人福利视频网站 | 精品一区二区在线观看视频 | 最新中文字幕在线 | 羞羞答答www网站进入 | 欧美精品久久久久久久久老牛影院 | 最新av在线免费观看 | 羞羞视频| 青草av.久久免费一区 | 一区二区国产在线 | 成人精品久久久 | 成人做爽爽爽爽免费国产软件 | 毛片免费观看完整版 | 国产成人免费精品 | 亚洲国产高清一区 | 性视频久久 | 婷婷一区二区三区四区 | 中文字幕在线视频日本 | 成年免费观看视频 | 久久成人精品视频 | 狠狠婷婷综合久久久久久妖精 | 精品一区二区三区网站 | 草久影视| 欧美巨乳在线观看 | 精品国产一区二区三区四区阿崩 | 久久69精品久久久久久国产越南 | 国产精品久久久久久久久粉嫩 | fc2成人免费人成在线观看播放 | av日韩在线免费观看 | 国产毛片毛片毛片 | 亚洲国产网址 | 一区二区免费网站 | 91成人影库| 亚洲精品久久久久久下一站 | 国产成人精品免费视频大全最热 | 欧美性生活久久 |