htop、dstat、top、ps命令的使用

一、htop

1、htop介绍

  htop是Linux系统下一个基本文本模式的、交互式的进程查看器,主要用于控制台或shell 中,可以替代top,或者说是top的高级版。

  htop命令优点:

        (1) 快速查看关键性能统计数据,如CPU(多核布局)、内存/交换使用;

        (2) 可以横向或纵向滚动浏览进程列表,以查看所有的进程和完整的命令行;

        (3) 杀掉进程时可以直接选择而不需要输入进程号;

        (4) 通过鼠标操作条目;

        (5) 比top启动得更快;

2、htop安装

  Centos上可以直接使用yum进行安装:

  [root@localhost ~]# yum install -y htop

wKiom1Z_W7agFgaVAABBm-eXlos959.png

3、htop使用

    默认无选项:

wKiom1Z_XCLD1eRqAACRsx6i4bw290.png

    常用选项:

          -d #:指定延迟时间间隔;

          -u UsrName:仅显示指定用户的进程;

          -s COLUME:以指定字段进行排序;

    子命令

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

          s:跟踪选定的进程的系统调用;

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

          a:将选定的进程绑定至某指定的CPU核心;

二、dstat

 1、dstat介绍

  dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新,譬如输入dstat 3即每三秒收集一次,但最新的数据都会每秒刷新显示。和sysstat相同的是,dstat也可以收集指定的性能资源,譬如dstat -c即显示CPU的使用情况。

2、dstat的安装:

 Centos上可以直接使用yum进行安装:

  [root@localhost ~]# yum install -y dstat

3、dstat命令使用:

      dstat [-afv] [options..] [delay [count]]

wKioL1Z_q8yDqkrGAAAu1pDaRDA844.png

  常用选项:

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

       -C #,#,...,total

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

       -D da,sdb,...,tobal

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

       -m:Memory的相关统计数据

       -n:Interface的相关统计数据;

       -p:显示process的相关统计数据;

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

       -s:显示swapped的相关统计数据;

       --tcp 

       --udp

       --raw 

       --socket 

       --ipc 显示ipc消息队列,信号等信息

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

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

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

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

三、top

1、top介绍

  top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.

2、命令格式:

 top [参数]

     - display Linux processes

wKioL1Z_p_WxsfGSAABqtGMRDgw071.png

    排序:

        P:以占据CPU百分比排序;

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

        T:累积占用CPU时间排序;

    首部信息:

         uptime信息:l命令

         tasks及cpu信息:t命令

         内存信息:m命令

         退出命令:q

         修改刷新时间间隔:s

         终止指定的进程:k

    常用选项:

         -d #:指定刷新时间间隔,默认为3秒;

         -b:以批次方式显示;

          n #:显示多少批次;

说明:

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行



四、ps

1、ps介绍

  Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

  ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。kill 命令用于杀死进程。

2、linux上进程有5种状态: 

  (1) 运行(正在运行或在运行队列中等待) 

  (2) 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 

  (3) 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 

  (4) 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 

  (5) 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行) 

3、ps工具标识进程的5种状态码: 

   D 不可中断 uninterruptible sleep (usually IO) 

   R 运行 runnable (on run queue) 

   S 中断 sleeping 

   T 停止 traced or stopped 

   Z 僵死 a defunct (”zombie”) process 

(1)命令格式:

 ps[选项]

(2)命令功能:

 用来显示当前进程的状态

(3)命令选项:

  a  显示所有进程

 -a 显示同一终端下的所有程序

 -A 显示所有进程

 c  显示进程的真实名称

 -N 反向选择

 -e 等于“-A”

 e  显示环境变量

 f  显示程序间的关系

 -H 显示树状结构

 r  显示当前终端的进程

 T  显示当前终端的所有程序

 u  指定用户的所有进程

 -au 显示较详细的资讯

 -aux 显示所有包含其他使用者的行程 

 -C<命令> 列出指定命令的状况

 --lines<行数> 每页显示的行数

 --width<字符数> 每页显示的字符数

 --help 显示帮助信息

 --version 显示版本显示

4、ps使用:

(1)显示所有进程信息

wKiom1Z_oI6CtrRZAAA492u9y3E370.png

(2)显示指定用户信息

wKiom1Z_oTTRzZkqAAA3W0Wme1M144.png

(3)将目前属于您自己这次登入的 PID 与相关信息列示出来

wKiom1Z_o1HxEErAAAAacUkiLeM843.png

(4)列出目前所有的正在内存当中的程序

wKioL1Z_pGThvoZgAAA-Gt-zarA898.png

(5)ps 与grep 常用组合用法,查找特定进程

wKioL1Z_pR2wmDCSAAAcs8sagaU243.png

说明:

USER:该 process 属于那个使用者账号的

PID :该 process 的号码

%CPU:该 process 使用掉的 CPU 资源百分比

%MEM:该 process 所占用的物理内存百分比

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

STAT:该程序目前的状态,主要的状态有

R :该程序目前正在运作,或者是可被运作

S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。

T :该程序目前正在侦测或者是停止了

Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

START:该 process 被触发启动的时间

TIME :该 process 实际使用 CPU 运作的时间

COMMAND:该程序的实际指令

(6)其他使用:

1. 可以用 | 管道和 more 连接起来分页查看

命令:

ps -aux |more

2. 把所有进程显示出来,并输出到ps2015.txt文件

命令:

ps -aux > ps2015.txt

3. 指定输出的字段

命令:

 ps -o pid,ppid