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 19:09
下一篇 2017-03-15 19:09

相关推荐

  • DNS原理详解

    1、DNS概述   domain name service  区域名称服务或者domain named system 区域名称系统,是互联网最基础的服务,分为正向域名解析(将域名解析为IP地址)和反向域名解析(将IP地址解析为域名)两部分。 2、bind   bind(Berkeley Internet Name Domain)…

    Linux干货 2016-08-26
  • LinuxGrub修复方法

    Linux因Grub损坏的修复方法: 1)救援模式修复(备份了MBR) 2)救援模式修复(无备份MBR) 3)Grub下手动启动Linux系统 1、救援模式修复(备份了MBR)     MBR中存放了Bootloader信息(Grub),在磁盘的最开始512字节,当这512字节出现故障,系统将无法引导启动。 &nbsp…

    Linux干货 2016-06-22
  • 【26期】Linux第二周学习小总结

    关于用户组的一些小小的整理     本周学习很多的知识,一些文件管理的技巧和命令,重定向和管道的实用技巧和拓展,最后则是到了我们的用户组的权限和管理,既然说到了管理,我们都知道在Linux中,老师讲的最多的一句话就是一切皆文件,既然是文件就会有用户去用,在里面进行各种的操作,比如增删改查啊,对文件的重新定义啊,那我们就…

    2017-07-21
  • 逻辑卷管理器

    逻辑卷管理器(LVM)     允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小     允许在多个物理设备间重新组织文件系统         • 将设备指定为物理卷   …

    Linux干货 2016-09-06
  • bash脚本之进阶

    bash脚本 1、终端打印 1、单双引号(echo) 双引号: ①在双引号里面打不出! ②双引号,可以在文本中使用“;”,“;”在bash中被用作命令定界符。 单引号: 变量替换在单引号中无效。 2、printf:不会自动添加换行符,要手动添加 如下: 结果: 3、补充: echo 要使用转义系列需要加e,!号除外 2、变量和环境变量 脚本语言通常…

    Linux干货 2016-11-28
  • 1019作业

    1019作业 柴震 软连接 硬连接 软连接和硬链接的区别 属性与定义: 硬链接:新建的文件是已经存在的文件的一个别名,所以创建时链接数递增;而且当原文件删除时,新建的链接文件仍然可以使用,因其直接对应于数据块。 软链接:也称为符号链接。新建的链接文件以“路径”的形式来表示另一个文件,其大小为指向的路径字符串的长度,不增加或减少目标文件in…

    Linux干货 2016-10-19

评论列表(1条)

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

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