Linux 查看cpu、內存、io、

strace 跟蹤用戶空間進程的系統調用和信號,看進程具體在幹啥,萬能的strace也不是真正的萬能。當目標進程卡死在用戶態時,strace就沒有輸出了。express

使用方式:啓動時跟蹤strace ls -lh /var/log/messages;跟蹤已經啓動的進程 strace -p pid;網絡

應用場景:socket

一、定位進程異常退出:strace -o strace.log -tt -p 24298排序

二、定位共享內存異常:strace -tt -f -e trace=ipc ./a_mon_svr     ../conf/a_mon_svr.conf 隊列

-e trace=ipc 選項,讓strace只跟蹤和進程通訊相關的系統調用。進程

-e expr -- a qualifying expression: option=[!]all or option=[!]val1[,val2]...
   options: trace, abbrev, verbose, raw, signal, read, writeip

 

Linux內核目前有300多個系統調用,詳細的列表能夠經過syscalls手冊頁查看。這些系統調用主要分爲幾類:
文件和設備訪問類 好比open/close/read/write/chmod等
進程管理類 fork/clone/execve/exit/getpid等
信號類 signal/sigaction/kill 等
內存管理 brk/mmap/mlock等
進程間通訊IPC shmget/semget * 信號量,共享內存,消息隊列等
網絡通訊 socket/connect/sendto/sendmsg 等

 

 

ps auxw內存

u:以用戶爲主的格式來顯示程序情況get

x:顯示全部程序,不以終端機來區分 消息隊列

w:採用寬闊的格式來顯示程序情況

sort -rn -k5

-n是按照數字大小排序,-r是以相反順序,-k是指定須要排序的欄位

1.CPU佔用最多的前10個進程: 

ps auxw|head -1;ps auxw|sort -rn -k3|head -10 
2.內存消耗最多的前10個進程 

ps auxw|head -1;ps auxw|sort -rn -k4|head -10 
3.虛擬內存使用最多的前10個進程 

ps auxw|head -1;ps auxw|sort -rn -k5|head -10

top命令而後界面輸入大寫的P,進程按照CPU消耗動態排序;大寫 M,進程按照 Mem 消耗動態排序

相關文章
相關標籤/搜索