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

top

top是一个动态显示过程,即可跟据用户的按键不断刷新当前状态,top命令提供了实时的对当前系统的状态监视。

top - 11:53:40 up 11 days, 13:32,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 179 total,   1 running, 178 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.8 us,  0.7 sy,  0.0 ni, 98.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1880328 total,   203168 free,   151380 used,  1525780 buff/cache
KiB Swap:  2097148 total,  2097044 free,      104 used.  1389256 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                         
30624 root      20   0  250396  21912   4680 S   3.0  1.2   8:43.05 /usr/bin/python /usr/bin/glances -o HTML -f /usr/local/nginx/html                                               
    1 root      20   0  134164  14168   3116 S   0.0  0.8   2:12.55 /usr/lib/systemd/systemd --switched-root --system --deserialize 20                                              
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.20 [kthreadd]  
...

一、top前五行信息

统计信息区前五行是系统整体的统计信息。

  • 第一行是任务队列信息

同uptime命令的执行结果:

[root@localhost ~]#uptime
 11:59:37 up 11 days, 13:38,  3 users,  load average: 0.00, 0.01, 0.05

其内容如下:

  1. 11:59:37 #当前系统的时间

  2. up 11 days, 13:38 #系统的运行的时间

  3. 3 users #当前的登陆的用户

  4. load average: 0.00, 0.01, 0.05 #系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

  • 第二、三行是进程和cpu的信息

  1. Tasks: 179 total #进程总数

  2. 1 running #正在运行的进程数

  3. 178 sleeping #睡眠的进程数

  4. 0 stopped #停止的进程书

  5. 0 zombie #僵尸进程

  6. 0.8 us #用户空间占有cpu百分比

  7. 0.7 sy #内核空间占用cpu百分比

  8. 0.0 ni #用户进程空间nice切换进程优先级占用的cpu百分比

  9. 98.5 id #空闲的cpu百分比

  10. 0.0 wa #等待输入输出的cpu时间百分比

  11. 0.0 hi #硬件io占用cpu的百分比

  12. 0.0 si #软件io占用的cpu百分比

  13. 0.0 st #被虚拟化程序偷走的cpu百分比

  • 第四、五行为内存信息

KiB Mem :

  1. 1880328 total #物理内存总量

  2. 203168 free #空闲物理内存的总量

  3. 151380 used #使用的物理内存总量

  4. 1525780 buff/cache #用作内核缓存缓冲的内存量

KiB Swap:

  1. 2097148 total #交换区总量

  2. 2097044 free #交换区空闲总量

  3. 104 used #使用的交换区总量

  4. 1389256 avail Mem #实际可用的内存总量

二、进程信息

  1. PID #进程id

  2. USER #进程所有者的用户名

  3. PR #优先级

  4. NI #nice值,负值表示高优先级,正值表示低优先级

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

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

  7. CODE #可执行代码占用的物理内存大小,单位kb

  8. DATA #可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

  9. SHR #共享内存大小,单位kb

  10. S #进程状态

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

  12. %MEM #进程使用的物理内存百分比

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

  14. COMMAND #命令名/命令行

三、进程状态信息

  1. D:不可中断的睡眠

  2. R:运行或就绪

  3. S:可中断的睡眠

  4. T:停止

  5. Z:僵死

  6. <:高优先级进程

  7. N:低优先级进程

  8. +:前台进程组中的进程

  9. l:多线程进程

  10. s:会话进程首进程

四、top指令 top

  1. M:根据驻留内存大小进行排序

  2. P:根据cpu使用百分比排序

  3. T:根据累计时间进行排序

  4. l:是否显示平均负载和启动时间

  5. t:是否显示进程和cpu状态相关信息

  6. m:是否显示内存相关信息

  7. c:是否显示完整的命令行信息

  8. q:退出top

  9. k:终止某个进程

top选项

  1. -d:刷新时长

  2. -b:刷屏显示

  3. -m:显示几屏

htop

我们了解了top命令的使用,但是还有一个比传统top更加功能强大的htop命令,它有更加强大的功能及能显示更多的信息。

CPU[                                                   0.0%]     Tasks: 27, 30 thr; 2 running
  Mem[||||||||||||||||||||||||||||||||||            227/977MB]     Load average: 0.00 0.01 0.05 
  Swp[                                               0/2047MB]     Uptime: 4 days, 15:17:58

    PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
  57474 root       20   0  117M  2212  1416 R  0.5  0.2  0:00.53 htop
   1370 root       20   0  540M 16360  5728 S  0.0  1.6  0:38.55 /usr/bin/python -Es /usr/sbin/tuned -l -P
  42295 root       20   0  137M  5136  3868 S  0.5  0.5  0:00.43 sshd: root@pts/0,pts/1
  ...

显示的内容更top相似,那我们来了解下htop更强大的功能:

  • htop支持鼠标操作

  • htop可以定制化显示内容

CPU[|                                                  0.4%]     Tas[|                                                 2/385]
  Mem[||||||||||||||||||||||||||||||||||            230/977MB]     Load average: 0.00 0.01 0.05 
  Swp[                                               0/2047MB]     Uptime: 4 days, 15:32:24

   PPID START     PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
   1131 00:51    1146 root       20   0  454M 20876 10760 S  0.0  2.1  0:10.80 /usr/bin/docker-current daemon --selinux-enabled
   1131 00:51    1153 root       20   0  454M 20876 10760 S  0.0  2.1  0:00.00 /usr/bin/docker-current daemon --selinux-enabled
   1131 00:51    1184 root       20   0  454M 20876 10760 S  0.0  2.1  0:19.32 /usr/bin/docker-current daemon --selinux-enabled
   1131 Feb06    1267 root       20   0  454M 20876 10760 S  0.0  2.1  0:07.20 /usr/bin/docker-current daemon --selinux-enabled
   1131 Feb06    1273 root       20   0  454M 20876 10760 S  0.0  2.1  0:00.02 /usr/bin/docker-current daemon --selinux-enabled
   1131 00:51    1335 root       20   0  454M 20876 10760 S  0.0  2.1  0:00.00 /usr/bin/docker-current daemon --selinux-enabled
  • htop可以查找或过滤要查找显示的内容

CPU[                                                   0.0%]     Tas[|                                                 2/385]
  Mem[||||||||||||||||||||||||||||||||||            230/977MB]     Load average: 0.00 0.01 0.05 
  Swp[                                               0/2047MB]     Uptime: 4 days, 15:34:20

   PPID START     PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command      
   1 Feb06    1129 grafana    20   0  407M 15116  8352 S  0.0  1.5  0:08.34 ├─ /usr/sbin/grafana-server --config=/etc/grafana/gr      
   1 00:51   26605 grafana    20   0  407M 15116  8352 S  0.0  1.5  0:00.00 │  ├─ /usr/sbin/grafana-server --config=/etc/grafana      
   1 00:51   14594 grafana    20   0  407M 15116  8352 S  0.0  1.5  0:00.25 │  ├─ /usr/sbin/grafana-server --config=/etc/grafana      
   1 00:51    1232 grafana    20   0  407M 15116  8352 S  0.0  1.5  0:01.90 │  ├─ /usr/sbin/grafana-server --config=/etc/grafana      
   1 00:51    1203 grafana    20   0  407M 15116  8352 S  0.0  1.5  0:00.02 │  ├─ /usr/sbin/grafana-server --config=/etc/grafana      
   1 00:51    1143 grafana    20   0  407M 15116  8352 S  0.0  1.5  0:00.00 │  ├─ /usr/sbin/grafana-server --config=/etc/grafana     
    1 00:51    1140 grafana    20   0  407M 15116  8352 S  0.0  1.5  0:00.39 │  └─ /usr/sbin/grafana-server --config=/etc/grafana

ps

查看进程快照

ps 有两种风格的命令:

SysV风格:以-开头

BSD风格:不需要-

常见的组合:

BSD风格:

  • a:所有与终端有关的进程

  • u:以用户为中心,进行显示

  • x:所有与终端无关的进程

  • o:自定义显示的字段

o后面常见的字段有:

  • pid:进程的id

  • ni:nice值

  • pri:优先级

  • psr: 进程分配到那个cpu

  • stat: 进程的状态

  • tty: 显示终端

  • comm: 显示命令

  • ppid:显示父进程

  • rtprio: 实时优先级

SysV风格:

  • -e: 显示所有进程

  • -f: 显示进程间关系

  • -o: 自定义显示字段

datst

收集系统信息

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

  • -C #,#…total

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

  • -D sda,sdb…total

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

  • -m:memory的相关统计数据

  • -n:interface的相关统计数据

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

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

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

  • –tcp:显示tcp信息

  • –udp:显示udp信息

  • –raw:显示裸套接字信息

  • –socket:显示socket信息

  • –ipc:显示进程间通信信息

  • –top-cpu:显示最占cpu的进程

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

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

  • –top-latency:延迟最大的进程

原创文章,作者:N25_随心,如若转载,请注明出处:http://www.178linux.com/68719

(0)
N25_随心N25_随心
上一篇 2017-03-15
下一篇 2017-03-15

相关推荐

  • 文件查找工具locate和find的使用分析

    文件查找工具locate和find的使用分析 不管是在windows系统中还是在Linux系统中,我们经常会一些文件进行搜索查找,而在Linux系统中经常用到的搜索工具有locate和find,这两种搜索工具的工具原理和用法都不相同,一下将这对这两种搜索工具的使用进行分析。 1、locate工具的工作原理是对/var/lib/mlocate/mlocat.d…

    Linux干货 2016-08-18
  • test

    test

    Linux干货 2018-02-23
  • 马哥教育网络21期+第十二周练习博客中

    4、建立httpd服务器(基于编译的方式进行),要求:  提供两个基于名称的虚拟主机: (a)www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access; (b)www2.stuX.com,页面文件目录为/web…

    Linux干货 2016-10-17
  • 马哥教育网络班第21期+第一周课程作业

    一、 描述计算机的组成及其功能     计算机主机包括:运算器,控制器,存储器,输入设备,输出设备 1、运算器:功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 2、控制器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对从控制器取来…

    Linux干货 2016-07-12
  • linux基础(第二天)

    一、终端:ternimal     COMMAND:tty     串行终端:/dev/ttyS#      物理终端:/dev/console 键盘显示器 单一用户     虚拟终端:/d…

    Linux干货 2016-07-26
  • SDCC 2017互联网运维开发实战峰会上海站

    3月17日-19日,由CSDN重磅打造的互联网运维开发实战峰会、数据库核心技术与应用实战峰会和互联网应用 架构实战峰会将在上海举行。 作为SDCC 2017(中国软件开发者大会)系列技术峰会的一部分,秉承干货实料(案例)的内容原则。 这三场峰会将邀请业内顶尖的架构师和技术专家,共同探讨运维工具研发与实践、运维自动化系统的构建、大数据与运维…

    Linux干货 2017-02-11

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-30 14:07

    不错,总结归纳的非常好,这样对比归纳记忆将会更有利于长时间记忆。