ps命令用法详解(转)
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: 表示进程占用的虚拟内存的大小,KB
args:进程名(command)
sort命令对ps结果进行排序
-k 1 :按第一个参数 rss进行排序
-r:逆序
-n:numeric,按数字来排序
ps是Linux下用来查看进程的各种信息的工具,通过ps命令我们可以非常清楚地掌握各个进程所使用的系统资源,及时发现那些资源消耗异常的进程。保障服务器系统的高可用性及稳定性。
系统环境:Debian GNU/Linux 7.7 (wheezy)
pathname:/bin/ps
package:procps
ps命令选项:
简单进程选择:
-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 rss
S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD
S 0 18303 1 0 80 0 508 10460 - ? 00:00:03 php5-fpm
S 33 22675 18303 1 80 0 39040 18523 - ? 00:00:04 php5-fpm
S 33 22676 18303 0 80 0 42576 19404 - ? 00:00:03 php5-fpm
S 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 表示线程id
pcpu 表示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 group
http://blog.chinaunix.net/uid-21706718-id-3341751.html
ps命令用法详解(转)的更多相关文章
- Ubuntu kill命令用法详解
转自:Ubuntu kill命令用法详解 1. kill 作用:根据进程号杀死进程 用法: kill [信号代码] 进程ID root@fcola:/# ps -ef | grep sen ...
- [转帖]强大的strace命令用法详解
强大的strace命令用法详解 文章转自: https://www.linuxidc.com/Linux/2018-01/150654.htm strace是什么? 按照strace官网的描述, st ...
- systemctl命令用法详解
systemctl命令用法详解系统环境:Fedora 16binpath:/bin/systemctlpackage:systemd-units systemctl enable httpd.serv ...
- install 命令用法详解
install 命令用法详解 http://man.linuxde.net/install install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户.install命令和cp命令类似 ...
- Linux下find命令用法详解
Linux下find命令用法详解 学神VIP烟火 学神IT教育:XueGod-IT 最负责任的线上直播教育平台 本文作者为VIP学员 烟火 第一部分:根据文件名查找 1.在当前目录 ...
- lsof 命令用法详解
lsof 命令用法详解 作用 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP.UDP).找回/恢复删除的文件.是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所 ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- (转)linux paste命令用法详解
linux paste命令用法详解原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htmlinux下paste命令,可用于合并文件的列. 功能说明:合并文件 ...
- CentOS 7.X 中systemctl命令用法详解
systemctl是RHEL 7 的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体.可以使用它永久性或只在当前会话中启用/禁用服务,下面来看CentOS 7.X 中 ...
随机推荐
- VC++ 视频播放器 图文步骤记录
1.安装DirectShow9.0 SDK DirectShow9 SDK下载链接http://download.csdn.net/detail/jindou910101/5591169 2.运行Di ...
- OCA读书笔记(17) - 移动数据
Sql*load 1. sql*loader的文件有哪些? 日志文件:概述了作业的成功与失败以及所有相关错误的细节 错误文件(bad file):从输入文件中抽取的行可能会被sqlldr丢弃(原因可能 ...
- Flexigrid的使用(整合Struts2)
Flexigrid是一个jQuery表格插件 下载地址:http://download.csdn.net/detail/itmyhome/7613879 用法: 一.相关资源文件的引入 <lin ...
- Wix学习整理(4)——关于WiX文件格式和案例HelloWorld的分析
原文:Wix学习整理(4)--关于WiX文件格式和案例HelloWorld的分析 关于WiX文件格式 .wxs是WiX的源文件扩展名..wxs文件以类XML文件的格式来指定了要构造Windows In ...
- BytesWritable 存储问题
public static void main(String args[]){ BytesWritable cv = new BytesWritable(); String str1 = " ...
- 使用MSPT实现二层冗余
- 【译】ASP.NET MVC 5 教程 - 6:通过控制器访问模型的数据
原文:[译]ASP.NET MVC 5 教程 - 6:通过控制器访问模型的数据 在本节中,你将新建一个MoviesController 类,并编写获取电影数据的代码,使用视图模板将数据展示在浏览器中. ...
- MySQLdb 连接Mysql 数据库出错解决
#coding=utf-8 import MySQLdb if __name__ == "__main__": db = MySQLdb.connect(host=<sp ...
- ubuntu下ssh使用 与 SCP 使用
1 ssh远程登录服务器 ssh username@remote_ip #将username换成自己的用户名,将remote_ip换成远程服务器的ip地址 2 将文件/文件夹从远程服务器拷至本地(sc ...
- SWT的对话框们
对话框,都继承自org.eclipse.swt.widgets.Dialog,有Modal的和Modeless的区分,一般的对话框处理程序如下: <DialogType> dlg = ne ...