天天看點

linux下追查線上問題常用指令

linux下追查線上問題常用指令

(1)查占用cpu最多的程序

方法一:

核心指令:ps

實際指令:

ps H -eo pid,pcpu | sort -nk2 | tail

執行效果如下:

[work@test01 ~]$ ps H -eo pid,pcpu | sort -nk2 | tail

31396 0.6

31396 0.6

31396 0.6

31396 0.6

31396 0.6

31396 0.6

31396 0.6

31396 0.6

30904 1.0

30914 1.0           

結果:

瞧見了吧,最耗cpu的pid=30914(實際上是31396)

方法二:

核心指令:top

top

Shift + t           

(2)在(1)的基礎上,對應的服務名是什麼呢

ps aux | fgrep pid           
[work@test01 ~]$ ps aux | fgrep 30914

work 30914 1.0 0.8 309568 71668 ? Sl Feb02 124:44 ./router2 –conf=rs.conf           

瞧見了吧,程序是./router2

核心指令:…無,直接查proc

ll /proc/pid           
[work@test01 ~]$ ll /proc/30914

lrwxrwxrwx 1 work work 0 Feb 10 13:27 cwd -> /home/work/im-env/router2

lrwxrwxrwx 1 work work 0 Feb 10 13:27 exe -> /home/work/im-env/router2/router2           

這個好,全路徑都出來了

(3)檢視某個端口的連接配接情況

核心指令:netstat

netstat -lap | fgrep port           
[work@test01 ~]$ netstat -lap | fgrep 22022

tcp 0 0 10.58.xxx.29:22022 *:* LISTEN 31396/imui

tcp 0 0 10.58.xxx.29:22022 10.58.xxx.29:46642 ESTABLISHED 31396/imui

tcp 0 0 10.58.xxx.29:22022 10.58.xxx.29:46640 ESTABLISHED 31396/imui
           

核心指令:lsof

lsof -i :port           
[work@test01 ~]$ /usr/sbin/lsof -i :22022

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

router 30904 work 50u IPv4 69065770 TCP 10.58.xxx.29:46638->10.58.xxx.29:22022 (ESTABLISHED)

router 30904 work 51u IPv4 69065772 TCP 10.58.xxx.29:46639->10.58.xxx.29:22022 (ESTABLISHED)

router 30904 work 52u IPv4 69065774 TCP 10.58.xxx.29:46640->10.58.xxx.29:22022 (ESTABLISHED)           

(4)待續…

繼續閱讀