查看运行的进程,进程id,运行时间,占用内存,线程,结束进程(一)ps/top
一、Linux下显示系统进程的命令ps
最常用的有ps -ef 和ps aux,这两种只是Unix系统中的两种风格,没有太大区别,ps aux显示更多,这样以ps aux为例。因为ps aux会显示很长,所以通常需要通过管道(|)和more和grep配合使用,如ps aux | more:
黄色圈:使用的CPU
蓝色圈:RSS为占用的内存
绿色圈:TTY显示该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
红色圈:STAT为进程的状态
白色圈:START为进程启动的时间
TIME为进程运行的时间
灰色圈:COMMAND为执行的命令
STAT的状态有以下几种:
inux上进程有5种状态:
STAT显示 | 进程状态 | 含义 |
R | 运行 | 正在运行或在运行队列中等待 |
S | 中断,休眠中, 受阻 | 在等待某个条件的形成或接受到信号 |
D | 不可中断 | 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生 |
Z | 僵死 | 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放 |
T | 停止 | 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行 |
< | 优先级高的进程 | |
N | 优先级较低的进程 | |
L | 有些页被锁进内存 | |
s | 进程的领导者(在它之下有子进程) | |
| | 多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads); | |
+ | 位于后台的进程组; |
比如Ss表示,这个进程处于休眠状态,其下有子进程
二、如何查看自己的进程呢?使用管道(|)加grep;如
三、使用top查看
[test_pkuhpc@login05 ~]$ top
红色下划线为服务器运行的天数:
绿色下划线为运行的任务状态,这里只有一个任务运行
蓝色下划线为cpu运行状态,第一个us表示使用百分比
黄色下划线为内存使用情况,单位为KiB
其他参数,参考ps aux
退出按q或者Ctrl+c
top的使用方式 top [-d number] | top [-bnp]
参数解释:
-d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。 -b:以批次的方式执行top。 -n:与-b配合使用,表示需要进行几次top命令的输出结果。 -p:指定特定的pid进程号进行观察。
在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):
?:显示在top当中可以输入的命令 P:以CPU的使用资源排序显示 M:以内存的使用资源排序显示 N:以pid排序显示 T:由进程使用的时间累计排序显示 k:给某一个pid一个信号,可以用来杀死进程 。r:给某个pid重新定制一个nice值(即优先级) q:退出top(用ctrl+c也可以退出top)。
1、想看某个任务,先用ps aux 去查找id,然后用 :
[test_pkuhpc@login05 ~]$ top -p 40437
就可以只显示一个任务了
2、想看每个CPU核心,top后 ,按1就显示
mpstat -P ALL 和 sar -P ALL (显示一个小时的平均值) 也可以显示