ps p 22763 -L -o pcpu,pid,tid,time,tname,cmd,pmem,rss --sort rss 按rss排序
ps p 26653 -L -o pcpu,tid |sort -k1 -r -n|less 按第1列pcpu排序
找到上述进程中,CPU利用率比较高的线程号TID(十进制数),此处为3046
命令:
ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd
将获取的线程号(十进制数)转换成十六进制,此处为0xb46
命令:
printf "%x\n" 3046
查看进程PID为3036中
nid为0xb46的线程信息。
命令:
jstack -l 3036
ps - 按进程消耗内存多少排序
ps -eo rss,pmem,pcpu,vsize,args | sort -k 1 -r -n | less
解析一下:
ps 都知道,是linux,unix显示进程信息的, -e 是显示所有进程, -o是定制显示信息的格式rss: resident set size, 表示进程占用RAM(内存)的大小,单位是KB
pmem: %M, 占用内存的百分比pcpu:%C,占用cpu的百分比
vsize: 表示进程占用的虚拟内存的大小,KBargs:进程名(command)
sort命令对ps结果进行排序
-k 1 :按第一个参数(此处为rss)进行排序-r:逆序-n:numeric,按数字来排序
ps是Linux下用来查看进程的各种信息的工具,通过ps命令我们可以非常清楚地掌握各个进程所使用的系统资源,及时发现那些资源消耗异常的进程。保障服务器系统的高可用性及稳定性。
系统环境:Debian GNU/Linux 7.7 (wheezy)
pathname:/bin/pspackage:procpsps命令选项:
简单进程选择:
-A 选择所有进程
-e 选择所有进程,等同于-A通过清单选择进程(PROCESS SELECTION BY LIST)
-C cmdlist
通过进程的可执行文件的名字来选择进程输出格式控制:
-l —— 长格式,-y选项和这个一起用时很有用
-o —— 自定义输出格式,后接格式说明符,(格式说明符间用逗号隔开)-y —— 不显示flags,显示rss来代替addr,这个选项只能和-l选项一起用输出修改器(OUTPUT MODIFIERS):
--no-headers —— 不打印头部
--sort spec —— 指定排序次序,默认是按spec(说明符)升序排列(+spec:按spec升序排列;-spec,按spec降序排列)标准格式说明符:
代码 | 头部 | 描述 |
%mem | %MEM | 进程占用物理内存的百分比 |
args | COMMAND | 输出命令及其全部参数 |
cmd | CMD | alias args |
comm | COMMAND | 仅输出可执行文件的名字 |
command | COMMAND | alias args |
etime | ELAPSED | 输出进程的运行时间,时间格式如下:[[dd-]hh:]mm:ss(运行时间没有超过一天则不显示dd-,如果运行时间还不到一小时,则显示格式为mm:ss) |
euser | EUSER | 输出进程的执行者的用户名(有时是显示执行者的uid) |
lstart | STARTED | 输出进程启动时刻 |
pid | PID | 输出进程的进程号 |
psr | PSR | 进程当前被分配的处理器 |
pmem | %MEM | alias %mem |
rss | RSS | 物理内存的使用大小(单位为KB) |
rssize | RSS | alias rss |
rsz | RSZ | alias rss |
s | S | 最小状态显示(只显示一个字符) |
stat | STAT | 多字符状态显示(显示更详细的进程状态信息) |
state | S | alias s |
uname | USER | alias euser |
user | USER | alias euser |
进程状态代码:
D 不可中断睡眠R 正在运行或可运行(或者位于运行队列中)S 可中断睡眠T 已终止X 已死(should never be seen)Z 已故进程,已终止但还未被其父进程回收< 高优先级(对其它用户不友好)N 低优先级(对其它用户友好)L 页面锁定在内存s 含有子进程(is a session leader)l 多线程+ 位于前台进程组中root@godontop:~# ps -eo rss,pid,user,etime,lstart,stat,args --no-headers |sort -k 1 -nr
按第一个参数rss(物理内存)的使用情况从大到小排序按RSS的大小升序排列
# ps -lyC php5-fpm --sort rssS UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMDS 0 18303 1 0 80 0 508 10460 - ? 00:00:03 php5-fpmS 33 22675 18303 1 80 0 39040 18523 - ? 00:00:04 php5-fpmS 33 22676 18303 0 80 0 42576 19404 - ? 00:00:03 php5-fpmS 33 22435 18303 0 80 0 47904 20698 - ? 00:00:19 php5-fpm备注:当-o选项与--no-headers一起使用时,--no-headers需放在格式说明符的后面
http://godontop.com/linux-ps-command-usage-69/
ps -eLo pid,tid,class,rtprio,ni,pri,psr,pcpu,pmem,stat,wchan:30,comm
-e 显示所有进程-L 是现实线程信息-o 表示使用用户定义格式打印信息tid 表示线程idpcpu 表示cpu使用率pmem 参照%cpu%cpu %CPU cpu utilization of the process in "##.#" format. Currently, it is the CPU time used divided by the time the process has been running (cputime/realtime ratio), expressed as a percentage. It will not add up to 100% unless you are lucky. (alias pcpu).pmem 参照%mem%mem %MEM ratio of the process's resident set size to the physical memory on the machine, expressed as a percentage. (alias pmem).wchan:30 WCHAN name of the kernel function in which the process is sleeping, a "-" if the process is running, or a "*" if the process is multi-threaded and ps is not displaying threads.程序状态字段解释: D Uninterruptible sleep (usually IO) 不可中断睡眠 R Running or runnable (on run queue) 正在执行或可执行,表示目前在运行队列里面 S Interruptible sleep (waiting for an event to complete) 可中断睡眠 T Stopped, either by a job control signal or because it is being traced.停止 W paging (not valid since the 2.6.xx kernel) X dead (should never be seen) Z Defunct ("zombie") process, terminated but not reaped by its parent.僵尸进程 For BSD formats and when the stat keyword is used, additional characters may be displayed:附加字段 < high-priority (not nice to other users) 高优先级 N low-priority (nice to other users) 低优先级 L has pages locked into memory (for real-time and custom IO) s is a session leader l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) + is in the foreground process grouphttp://blog.chinaunix.net/uid-21706718-id-3341751.html