1,ps命令
ps命令是一个很强大的命令了,显示查询瞬间进程的状态,参数众多,仅列几个常用的和具体参数的含义。
1)基本使用
ps -aux #显示详细的进程信息,进程所有者不限于当前用户
查询到的进程有关参数的含义:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 进程所有者 PID: 进程ID %CPU: 占用的 CPU 使用率 %MEM: 占用的内存使用率 VSZ: 占用的虚拟内存大小 RSS: 占用的内存大小 TTY: 终端的次要装置号码 (minor device number of tty) STAT: 进程状态:
D 无法中断的休眠状态(通常 IO 的进程); R 正在运行,在可中断队列中; S 处于休眠状态,静止状态; T 停止或被追踪,暂停执行; W 进入内存交换(从内核2.6开始无效); X 死掉的进程; Z 僵尸进程不存在但暂时无法消除; W: 没有足够的记忆体分页可分配 WCHAN 正在等待的进程资源; <: 高优先级进程 N: 低优先序进程 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存 s 进程的领导者(在它之下有子进程); l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads); + 位于后台的进程组;
START: 启动进程的时间; TIME: 进程消耗CPU的时间; COMMAND:命令的名称和参数;
2)排序使用
ps -aux --sort=-vsz #ps命令自带排序功能,本命令指的是按照vsz的大小降序排列
可排序的项目有:
c cmd 可执行地简单名称
C cmdline 完整命令行
f flags 长模式标志
g pgrp 进程地组ID
G tpgid 控制tty进程组ID
j cutime 累计用户时间
J cstime 累计系统时间
k utime 用户时间
K stime 系统时间
m min_flt 次要页错误地数量
M maj_flt 重点页错误地数量
n cmin_flt 累计次要页错误
N cmaj_flt 累计重点页错误
o session 对话ID
p pid 进程ID
P ppid 父进程ID
r rss 驻留大小
R resident 驻留页
s size 内存大小(千字节)
S share 共享页地数量
t tty tty次要设备号
T start_time 进程启动地时间
U uid UID
u user 用户名
v vsize 总地虚拟内存数量(字节)
y priority 内核调度优先级
3)用标准格式显示进程的详细信息(aux命令用的不是标准格式,是BSD格式)
ps -ef
显示参数含义:
UID PID PPID C STIME TTY TIME CMD UID //用户ID、但输出的是用户名 PID //进程的ID PPID //父进程ID C //进程占用CPU的百分比 STIME //进程启动到现在的时间 TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。 CMD //命令的名称和参数
4)查看父进程的子进程
pstree -p 1234 #1234指的是pid,能拿到子线程的线程数
top -H -p 1234 #-H按照线程查看 -p指定父进程的pid
cat /proc/1234/status #查看某个进程的具体信息,数据比较繁杂
5)根据ps打印出来的系统内容排序查看
查看cpu占用率前5的几个进程
ps -aux | sort -k3,3nr | head -5 #sort中-t是指定的分隔符,默认空格,-k是指定分隔符后的字段顺序,-n按照字符串的数值顺序比较,-r reverse , -u uniq
查看内存前5的几个进程
ps -aux | sort -k4,4nr | head -5
2,top命令
top 命令是 Linux 下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu、内存的使用)占用状况,top命令的执行结果是一个动态显示过程。
用户可以输入的参数如下:
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 p 通过指定监控进程ID来仅仅监控某个进程的状态。 q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。 S 指定累计模式。 s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 i 使top不显示任何闲置或者僵死进程。 c 显示整个命令行而不只是显示命令名。 -n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。 -p :指定某些个 PID 来进行观察监测而已。
得到的参数含义:
列名 含义 PID 进程id PPID 父进程id RUSER Realusername UID 进程所有者的用户id USER 进程所有者的用户名 GROUP 进程所有者的组名 TTY 启动进程的终端名。不是从终端启动的进程则显示为? PR 优先级 NInice 值。负值表示高优先级,正值表示低优先级 P 最后使用的CPU,仅在多CPU环境下有意义 %CPU 上次更新到现在的CPU时间占用百分比 TIME 进程使用的CPU时间总计,单位秒 TIME+ 进程使用的CPU时间总计,单位1/100秒 %MEM 进程使用的物理内存百分比 VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。 RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA CODE 可执行代码占用的物理内存大小,单位kb DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb SHR 共享内存大小,单位kb nFLT 页面错误次数 nDRT 最后一次写入到现在,被修改过的页面数。 S 进程状态。 D= 不可中断的睡眠状态 R= 运行 S= 睡眠 T= 跟踪/停止 Z= 僵尸进程 COMMAND 命令名/命令行 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名