ps -aux
及ps ef
的区别
-
ps -ef
用于查看全格式的全部进程,ps aux
也是用于查看进程。其中“ps”是在Linux中是查看进程的命令,“-e ”参数代表显示所有进程,“-f”参数代表全格式。 -
ps -ef
和ps -aux
,这两者的输出结果差别不大,但展示风格不同。aux是BSD风格,显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND。而ps -ef
是System V风格,显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD。 -
COMMADN列如果过长,aux会截断显示,而ef不会。
综上,如果想查看进程的CPU占用率和内存占用率,可以使用aux ,如果想查看进程的父进程ID和完整的COMMAND命令,可以使用ef。
%CPU 执行命令时候进程占用的CPU
%MEM 执行命令时候进程占用的CPU
VSZ 虚拟内存集
RSS 常住内存集
TTY 终端号,不是从终端启动的进程则显示为 ?
STAT 状态
R:runing 运行态
S:可中断睡眠态
D:不可中断睡眠态
T:停止态
Z:僵尸态
s:表示这个进程是个领导者进程
+:该进程为前台进程
l:该进程是多线程进程
N:低优先级进程
<:高优先级进程
[]:表示这个一个内核线程
top
命令
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
虚拟内存是一个假象的内存空间,在程序运行过程中虚拟内存空间中需要被访问的部分会被映射到物理内存空间中。虚拟内存空间大只能表示程序运行过程中可访问的空间比较大,不代表物理内存空间占用也大。