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

相关推荐

  • Linux基础知识之根下各目录的介绍

    /bin  :所有用户使用的基本用户命令文件,二进制格式的 /sbin :供系统管理使用的工具程序 /boot :引导加载器必须用到的各静态文件:kernel initramfs(initrd),grub /dev  :存储特殊文件或设备文件;设备的类型:字符设备,块设备; /etc  :系统程序的静态配置文件,只能为静态的不能…

    Linux干货 2016-07-10
  • ​Linux基础知识之文件权限

    实验环境:    Linux系统版本为CentOS6.8_x86_64版本,以root用户和sjsir用户远程用xshell连接系统,进行试验。 文本目录:    1.文件的属性    2.文件权限相关的命令    3.umask 新建文件和目录的默认权限   &nbs…

    Linux干货 2016-08-05
  • shell基础if与case

    1.read   使用read来把输入值分配给一个或多个shell变量;   -p 指定要显示的提示;例如 read -p "SHURU" num   -t TIMEOUT   read 从标准输入中读取值,给每个单词分配一个变量,所有剩余单词都被分配给最后一个变量 2.流程控制   过程…

    Linux干货 2016-08-18
  • sed命令实战

    1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符  [root@centos7 ~]# sed -r 's#^[[:space:]]+##g' /etc/grub2.cfg # # DO NOT EDIT THI…

    Linux干货 2016-08-15
  • Linux作业管理、并发执行、计划任务

    概述     本章将为大家介绍一些进程管理的补充部分作业管理和任务的并发执行,同时也将介绍一下Linux系统上计划任务的相关内容,具体分为:         1、Linux作业管理     &nbsp…

    Linux干货 2016-09-09
  • shell编程if及find查找作业

    写一个脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息 [root@www sh.log]# cat createuser.sh  #!/bin/bash #author #使用一个用户名作为参数,如…

    Linux干货 2016-08-16

评论列表(1条)

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

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