execsnoop-短時進程追蹤工具

在實際工做中,偶爾會遇到系統的CPU使用率和系統平均負載很高,但卻找不到高CPU的應用;git

產生這個問題的緣由:進程有可能在不斷的崩潰、重啓github


經過uptime發現系統負載很高,可是經過top,mpstat,pidstat,perf等工具很難發現是什麼進程致使了系統負載和CPU使用率很高;
bash

注:經過上面工具的判斷,即不是CPU密集型,也不存在IO等待,也不存在進程、線程爭用的狀況ide


execsnoop-專門用於爲追蹤短時進程(瞬時進程)設計的工具;工具

它經過 ftrace 實時監控進程的 exec() 行爲,並輸出短時進程的基本信息,包括進程 PID、父進程 PID、命令行參數以及執行的結果。oop

github地址:https://github.com/brendangregg/perf-tools/blob/master/execsnoop 命令行

如何安裝使用:將上面的github的內容複製,而後寫入execsnoop文件,而且加上x權限便可;線程


使用方法:
設計

#./execsnoop
59187  59186 /usr/local/bin/stress -t 1 -d 1
59188  28775            <...>-59188 [000] d... 40067.137167: execsnoop_sys_execve: (SyS_execve+0x0/0x30)
59191  59188 /usr/local/bin/stress -t 1 -d 1
59190  28778            <...>-59190 [003] d... 40067.138913: execsnoop_sys_execve: (SyS_execve+0x0/0x30)
59192  28776            <...>-59192 [003] d... 40067.139103: execsnoop_sys_execve: (SyS_execve+0x0/0x30)
59194  59192 /usr/local/bin/stress -t 1 -d 1
59196  59190 /usr/local/bin/stress -t 1 -d 1
59198  28770            <...>-59198 [001] d... 40067.145500: execsnoop_sys_execve: (SyS_execve+0x0/0x30)
59199  28779            <...>-59199 [001] d... 40067.146228: execsnoop_sys_execve: (SyS_execve+0x0/0x30)
59200  59198 /usr/local/bin/stress -t 1 -d 1
59202  59199 /usr/local/bin/stress -t 1 -d 1
59204  28778            <...>-59204 [002] d... 40067.155150: execsnoop_sys_execve: (SyS_execve+0x0/0x30)
59206  28775            <...>-59206 [001] d... 40067.157282: execsnoop_sys_execve: (SyS_execve+0x0/0x30)
59208  59206 /usr/local/bin/stress -t 1 -d 1
59209  28770            <...>-59209 [003] d... 40067.158381: execsnoop_sys_execve: (SyS_execve+0x0/0x30)
59205  59204 /usr/local/bin/stress -t 1 -d 1
59207  28776            <...>-59207 [002] d... 40067.158882: execsnoop_sys_execve: (SyS_execve+0x0/0x30)

能夠看到有大量的stress進程,不斷的在啓用,形成系統的負載和CPU使用率升高;進程

相關文章
相關標籤/搜索