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 消耗动态排序

相关文章
相关标签/搜索