Linux进程管理命令之ps、dstat、top、htop

Linux的进程及cpu、内存等状况的监测是一件非常重要的事情。这里介绍几个比较常用的工具。

概述:ps命令、dstat命令、top命令、htop命令

一、ps命令 - 进程状态查看工具

工作机制:通过抽取内核提供的/proc/PID(每个进程的PID,有多个)目录下的各进程状态来显示给用户以供查看。

使用格式:ps
[options]

选项有三种风格:

1、UNIX风格,选项可以组合在一起且前面跟一个短横线。

2、BSD风格,选项可以组合在一起且前面可以不跟一个短横线。

3、GNU风格,是长选项,前面必须跟两个短横线。

BSD选项:

a:显示与终端有关的进程,即用户通过终端启动的进程

x:显示与终端无关的进程,即系统启动过程中自动启动等情况的进程

u:以用户为中心组织进程显示方式

o field1,field2, …:自定义要显示的字段列表

常用的field:

pid(进程号)、ni(nice值)、psr(进程所属处理器)、pri(priority,优先级)、pcpu(cpu占比)、

stat(状态)、rtprio(实时优先级)、comm(发起进程的程序)、tty(终端)、ppid(父进程号)

常用组合:aux

# ps aux
# 此处仅截取部分
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  19364  1536 ?        Ss   13:58   0:02 /sbin/init
root          2  0.0  0.0      0     0 ?        S    13:58   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    13:58   0:00 [migration/0]
root          4  0.0  0.0      0     0 ?        S    13:58   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S    13:58   0:00 [stopper/0]
root          6  0.0  0.0      0     0 ?        S    13:58   0:00 [watchdog/0]
root          7  0.0  0.0      0     0 ?        S    13:58   0:00 [migration/1]
root          8  0.0  0.0      0     0 ?        S    13:58   0:00 [stopper/1]
root          9  0.0  0.0      0     0 ?        S    13:58   0:00 [ksoftirqd/1]
root       2438  0.0  0.2  12584  2844 ?        S<   13:59   0:00 /sbin/udevd -d
root       2439  0.0  0.2  12584  2836 ?        S<   13:59   0:00 /sbin/udevd -d
root       3822  0.0  0.1 108332  1856 tty1     Ss+  15:22   0:00 -bash
root       4197  0.0  0.4  99968  4036 ?        Ss   15:29   0:02 sshd: [email protected]/1 
root       4201  0.0  0.1 108440  1876 pts/1    Ss   15:29   0:00 -bash
root       8096  0.0  0.0 100904   572 ?        S    21:22   0:00 sleep 60
root       8097  0.0  0.1 110232  1128 pts/1    R+   21:22   0:00 ps aux

这里解释一下显示的条目

USER:这个进程的属主

PID:进程的PID号

%CPU:占据cpu时间的百分比

%MEM:占据内存的百分比

VSZ:占用的虚拟内存大小

RSS:占用的常驻内存内存大小

TTY:在哪个终端启动,?表示与终端无关

START:进程开始的时间

TIME:累积消耗的cpu时间

COMMAND:发起进程的程序,[]内的程序为内核启动

STAT:进程状态

R:运行态

S:可中断睡眠态

D:不可中断睡眠态

T:停止态

Z:僵死态

+:前台进程

l:多线程进程

N:低优先级进程

<:高优先级进程

s:会话头(进程组的集合称为一个会话,而登录shell即为会话头)

UNIX选项:

-e:显示所有进程

-f:显示完整格式的进程信息

-F:显示更完整格式的进程信息

-H:以层级结构显示进程的相关信息

# ps -efH
#  此处仅截取部分
UID         PID   PPID  C STIME TTY          TIME    CMD
root       2143      1  0 13:59 ?        00:00:00   /usr/sbin/sshd
root       4197   2143  0 15:29 ?        00:00:02     sshd: [email protected]/1 
root       4201   4197  0 15:29 pts/1    00:00:00       -bash
root       8108   4201  0 21:23 pts/1    00:00:00         ps -efH

常用组合:

1、-ef(同ps aux 显示效果相同)

2、-eF

比-ef多显示两项:

C:cpu的占用百分比

PSR:运行在哪颗CPU之上

3、-eo,axo (o必须写在最后面)

# ps -eo pid,psr,comm
   PID PSR COMMAND
     1   0 init
     2   3 kthreadd
     3   0 migration/0
     4   0 ksoftirqd/0
     5   0 stopper/0
     6   0 watchdog/0
     7   1 migration/1
     8   1 stopper/1
     9   1 ksoftirqd/1
    10   1 watchdog/1
    11   2 migration/2
    12   2 stopper/2
    13   2 ksoftirqd/2
    14   2 watchdog/2
    15   3 migration/3
    16   3 stopper/3
    17   3 ksoftirqd/3

二、dstat命令 -- 查看系统资源信息的一个精巧的工具

使用格式:dstat
[-afv] [options..] [delay [count]]

-a:默认显示格式

# dstat -a 1 2
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0 100   0   0   0|6087B 1121B|   0     0 |   0     0 |  22    18 
  0   0 100   0   0   0|   0     0 | 120B  826B|   0     0 |  30    23 
  0   0 100   0   0   0|   0     0 | 120B  346B|   0     0 |  62    37

-f:将各cpu状态都显示出来以及其他信息

-v:显示进程相关状态及其他信息

delay:延迟多少秒显示一次

count:总共显示多少次

常用选项:

-c,--cpu:显示cpu相关信息

-C cpunumber,#,….,total

-d,--disk:显示磁盘相关信息

-D sda1,sdb1,......,total

-g:显示page相关的速率数据

-m:内存的相关统计数据

-n:网卡接口的相关统计数据

-p:显示进程的相关统计数椐

-r:显示io请求的相关数据

-s:显示交换分区的相关统计数据

--tcp:显示tcp连接状态

--udp:显示udp连接状态

--raw:显示裸套接字状态

--socket:显示套接字状态

--ipc:显示进程间通信状态(消息队列msg,信号sem,共享内存shm)

--top-cpu:显示最占用CPU的进程;

--top-io:最占用io的进程

--top-mem:最占用内存的进程

--top-lantency:延迟最大的进程

# dstat -C 1 1 2
-------cpu1-usage------ -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0 100   0   0   0|6079B 1121B|   0     0 |   0     0 |  22    18 
  0   0 100   0   0   0|   0     0 |  60B  826B|   0     0 |  21    15 
  
# dstat -n 1 2
-net/total-
 recv  send
   0     0 
  60B  202B
  60B  154B

# dstat --ipc 1 2
--sysv-ipc-
msg sem shm
0   2   0
0   2   0
0   2   0
  
# dstat --top-cpu 1 2
-most-expensive-
cpu      process   
vmmemctl 0.0
                
vmmemctl 3.0

三、top命令 -- 实时查看系统进程状态的交互式工具

使用格式:top
-hv|-bcHiOSs -d secs -n max -u|U user -p pid -o fld -w [cols]

1)打开:

键入top即可打开

-d secs:指定刷新间隔,单位是秒;默认3秒

-b:以批次方式显示(换屏显示)

-n max:指定以-b方式显示多少次结束;

2)显示字段解释和交互操作方式

1、头部显示字段

第一行显示时间、系统运行时长、用户数量、负载情况;使用 l 可以显示或者取消显示;

其中负载情况的三个数字分别是1分钟,5分钟,10分钟的平均负载状况

第二行显示各状态进程数量统计;和第三行一起使用 t 可以显示或者取消显示;

第三行显示cpu使用状况,us(用户空间进程所占百分比)、sy(内核空间所占百分比)、ni(nice值调整所占百分比)、id(cpu空闲百分比)、wa(等待IO的进程所占百分比)、hi(硬件中断所占百分比)、si(软件中断所占百分比)、st(被虚拟程序偷走的cpu时间所占百分比);使用数字 1 可以显示各cpu使用状况。

第四行和第五行显示内存和交换分区被使用状况;使用 m 可以显示或者取消显示;

2、显示字段

PID:进程号;

USER:发起进程的用户

PR:进程优先级

NI:nice值

VIRT:进程所占虚拟内存大小

RES:进程所占常驻内存大小

SHR:进程所占共享内存大小

S:进程当前状态

%CPU:进程所占cpu的百分比

%MEM:进程所占内存的百分比

I     TIME+:累积所占cpu的时长

COMMAND:发起此进程的程序

3、交互操作方式

退出命令:q

修改刷新时间间隔:s

终止指定进程:k;敲k之后输入进程号即可

获取帮助:h或者?

改变显示色彩:z

排序:

P:以占据CPU百分比排序

M:以占据内存百分比排序

T:以累计占用CPU时间排序

四、htop命令 --- top命令的替代工具,亦是一款实时查看进程状况的工具

1)仅用htop就可打开

使用格式: htop [-dChusv]

选项:

-d secs:打开前指定刷新间隔,单位是十分之一秒;默认为2秒

-C:无颜色显示

-h:显示帮助信息

-u USER:显示指定用户发起的进程

-s COLUMN:以指定列为参考进行排序

2)字段解释及交互

1、字段解释:

大部分同top命令显示格式,请参阅上面top字段解释;不同之处在于左上角的1~4分别显示了不同的cpu的占用百分比。Task仅显示用户空间进程的数量,其中有一项thr是线程数;

这里值得注意的是不同颜色去区分cpu、内存等的使用具体状况。字段和top显示一样。

2、交互

(1)可以使用鼠标操作。

(2)常用的交互命令

1)l:显示选定的进程打开的文件列表

2)s:跟踪选定的进程

3)t:以层级关系显示各进程状态;

注意:可使用鼠标或者上下键来选定用户

4)H:是否显示用户线程数;默认显示

5)K:是否显示内核线程数;默认隐藏
    6) F:指定光标

7)P M T:根据cpu使用百分比、内存使用百分比、cpu占用累计时间来排序

8)F6 >:根据选定字段列为依据进行排序

9)q:退出htop

10)h:打开帮助

小结:htop是一款十分精巧的工具,这里只是简单介绍了它的基本使用;更多的用法有兴趣者可以继续通过帮助文档学习。

注:本文所用示例均来自CentOS系统。

时间: 2024-10-25 20:23:52

Linux进程管理命令之ps、dstat、top、htop的相关文章

Linux进程管理四大工具ps \dstat\ top\ htop

Linux进程管理之“四大名捕” 一.四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手“无情”.内功卓越的高手“铁手”.腿功惊人的“追命”和剑法一流的“冷血”本文四大名捕由linux命令所出演      无情:ps     出演      铁手:dstat  出演      追命:top    出演      冷血:htop   出演 二.进程相关基础知识 介绍四大名捕之前先介绍一下进程相关的基础知识,话不多说,看图. 三.

Linux 进程管理命令之ps

这个命令会显示某一时刻系统的进程状态. ps是通过/proc接口,让管理员查看内核进程状态信息. 为了响应一切皆文件,进程参数模拟成文件系统类型(文件),参数路径模拟成目录 /proc/# 每个进程都有一个进程ID号 这个目录里存放的各种进程的状态信息 启动进程的方式 1.系统启动过程中自动启动,与终端无关的进程 2.用户通过终端启动,与终端相关的进程.一旦终端断开,相关的进程就停止了. 选项 a 显示与终端相关的进程 同样的a选项 显示的不一样,ps进程显示信息有三种风格1.UNIX 2.BS

Linux 进程管理命令ps、top、kill、nice、fg、bg、vmstat、uptime

Linux 进程管理命令: ps process status 查看进行相关信息: system 风格:sysv  有-线引导 BSD风格:BSD ps a:显示所有跟终端有关的进程 u:显示更详细的字段 x:显示所有跟终端无关的进程 常用 ps ax 进程分类: 终端启动(相关)的进程:用户通过命令行启动的进程 跟终端无关的进程:系统启动就自己启动 进程状态: D: 表示不可中断的睡眠 R:表示就绪态 S:表示可中断的睡眠 T:停止 Z:僵死态 <:高优先级进程 N:低优先级进程 +:前台进程

12个Linux进程管理命令介绍

12个Linux进程管理命令介绍 当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.Linux提供了许多命令来让用户来高效掌控上述的操作. 执行中的程序称作进程.当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作系统会有效地管理和追踪所有运行着的进程. 为了管

Linux 进程管理命令

linux进程管理命令,大部分挺重要的,不过参数肯定不全,只写出几个比较常用的参数,如果用到其他的,可以去百度. accton  打开或关闭进程统计(打开进程统计,如果不加任何参数,则关闭进程统计) acction [-v][-h][filename] acct  是一个工具包 ,里面包含针对用户连接时间,进程执行情况进行统计包含下面一些命令 : ac   登录账号的简要信息 accton 打开或者关闭进程账号记录功能 last 显示曾经登陆过的用户 lastcomm 显示已经执行过的命令 sa

linux进程管理命令总结

linux进程管理的相关命令: 1.pstree  --以树状形式显示当前系统进程,和命令tree相似. 2.ps命令 命令格式:ps [options] 常用组合:aux: u:以用户为中心组织的进程状态信息显示 a:与终端相关的进程 x:与终端无关的进程 #ps aux USER : 用户名 PID : 进程号 %CPU :占用的cpu百分比 %MEM  :内存的使用率 VSZ :  virtual memory size ,虚拟内存集 RSS : resident size ,常驻内存集

linux进程管理命令 06

本文将阐述linux当中的进程管理命令. 1.操作环境 vmware 14.1 centos7 64 putty或者xshell 2.前提约束 已安装vmware vmware中已安装centos[注意,也可以直接就是一台linux机子,使用vmware是一个选项而已] 在本机能访问到centos[注意,本文中所涉及的linux服务器的ip是 192.168.100.192,请读者根据实际设置] 熟练使用putty或者xshell 在linux当中已经安装tomcat 3.ps查看进程 (1)

Linux进程管理命令浅析

在Linux上,一切皆文件.同样,系统的实时状态信息也通过文件的形式保存在文件系统上.在/proc/中,保存的就是内核中的状态信息,而在/proc/#中(#为PID)保存了进程的信息,我们可以通过调用工具来查看这些文件中保存的信息从而来管理系统的进程.本次,分析的命令有top.htop.dstat和ps共4个命令. 一.top命令的使用 查看系统进程的实时状态.其格式是 top [d|b|n] -d #:指定刷新时间间隔,默认为3秒 -b:以批次方式显示 -n #:显示多少批次 ~]# top

linux进程管理命令

进程管理类的命令: pstree,ps,top,vmstat,htop,pmap pstree:查看进程树 ps:显示系统当前进程状态的命令 进程: 跟终端相关的进程 跟终端无关的进程 a:所有跟终端相关的进程 ps a x:所有跟终端无关的进程 ps x STAT: S:可中断睡眠 D:不可中断睡眠 R:运行或可运行 T:停止 Z:僵死 s:session leader l:多线程进程 +:前台进程: N:低优先级进程 <:高优先级进程 COMMAND:由哪个命令发起的进程 []:内核线程 u