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

Posted type1818

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了htop/dstat/top/ps命令的使用相关的知识,希望对你有一定的参考价值。

top命令

? 显示系统中进程信息

[root@node0 ~]# top
top - 09:36:45 up 13:39,  3 users,  load average: 0.02, 0.03, 0.05
Tasks: 154 total,   2 running, 152 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1863252 total,   429280 free,   266972 used,  1167000 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1305808 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                            
  6979 root      20   0  746596  43944  15132 S   1.6  2.4   5:24.25 containerd                                         
 45301 root      20   0       0      0      0 S   0.5  0.0   0:21.40 kworker/0:0                                        
 57660 root      20   0  162012   2332   1624 R   0.5  0.1   0:00.89 top                                                
     1 root      20   0  193716   6684   4028 S   0.0  0.4   0:07.68 systemd                                            
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.05 kthreadd                                           
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.23 ksoftirqd/0                                        
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                       
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.08 migration/0                                        
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                             
     9 root      20   0       0      0      0 S   0.0  0.0   0:04.19 rcu_sched                                          
    10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain                                      
    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.25 watchdog/0                                         
    12 root      rt   0       0      0      0 S   0.0  0.0   0:00.25 watchdog/1                                         
    13 root      rt   0       0      0      0 S   0.0  0.0   0:00.28 migration/1                                        
    14 root      20   0       0      0      0 S   0.0  0.0   0:00.20 ksoftirqd/1                                        
    16 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H                                       
    17 root      rt   0       0      0      0 S   0.0  0.0   0:00.28 watchdog/2                                         
    18 root      rt   0       0      0      0 S   0.0  0.0   0:00.09 migration/2                                        
    19 root      20   0       0      0      0 S   0.0  0.0   0:00.74 ksoftirqd/2                                        
    21 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/2:0H                                       
    22 root      rt   0       0      0      0 S   0.0  0.0   0:00.26 watchdog/3                                         
    23 root      rt   0       0      0      0 S   0.0  0.0   0:00.26 migration/3                                        
    24 root      20   0       0      0      0 S   0.0  0.0   0:00.25 ksoftirqd/3      
    
首部信息
top -(与uptime结果相同,可按l命令隐藏/显示)
系统当前时间,启动多长时间,登录系统用户个数,平均负载(等待运行的进程队列长度,单核一般不超过3):过去1分钟,5分钟,15分钟

tasks:可用t命令隐藏/显示
任务或线程总数,正在运行任务数,睡眠任务数,停止任务数,僵尸任务数
进程状态:
    运行态:running
    就绪态:ready
    睡眠态:
        可中断:interruptable
        不可中断:uninterruptable
    停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped
    僵死态:zombie

%CPU(s):
    us, user    : 运行用户进程的时间(未调整nice值的)
    sy, system  : 运行内核进程的时间
    ni, nice    : 运行调整过nice值的用户进程的时间
    id, idle    : 空闲时间
    wa, IO-wait : 等待I/O完成花费的时间
    hi          : 处理硬件中断花费的时间
    si          : 处理软件中断花费的时间
    st          : 被虚拟化偷走的时间

KiB Mem :内存使用信息 
KiB Swap:swap使用信息 

进程显示字段
PID     : 进程唯一ID
USER    : 任务所有者的有效用户名
PR      : 任务的调度优先级。如果您在该字段中看到“rt”,则意味着该任务在实时调度优先级下运行。
NI      : 任务的nice值,nice值越小,优先级越高,0表示不会调整优先级
VIRT    : 虚拟内存
RES     : 常驻内存
SHR     : 共享内存
S       : 进程状态 
    D = 不可中断的睡眠态
    R = 运行态
    S = 睡眠态
    T = 停止态
    t = 被跟踪停止态
    Z = 僵尸态
%CPU    : 占用的CPU时间的百分比
%MEM    : 占用的MEM时间的百分比
TIME+   : 任务启动以来使用的总CPU时间
COMMAND : 启动任务的命令行或相关程序的名称。可以使用“c”在命令行和名称之间切换。

常用选项:

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

? -b:以批次方式显示;

? -n:显示多少批次

? -u 或 -U: 显示指定用户名 或者 UID的进程

? -p:显示指定进程号的进程

例:指定1秒刷新,以批次显示显示三次

? [root@node0 ~]# top -d 1 -b -n 3

常用子命令:

? 进入top可使用不同的子命令显示不同的效果

首部信息展示:

? l:隐藏/显示uptime信息

技术图片

? t:隐藏/显示tasks及CPU信息

技术图片

? m:隐藏/显示内存信息

技术图片

排序:

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

技术图片

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

技术图片

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

技术图片

R:反向排序

技术图片

A:交替模式

技术图片

用‘a‘和‘w‘在4个 窗口间切换。‘a‘移到后一个窗口,‘w‘移到前一个窗口。用‘g‘命令你可以输入一个数字来选择当前窗口

技术图片

c:显示进程完整的路径和程序名

技术图片

d/s:修改刷新时间间隔

技术图片

k:终止指定进程

技术图片

r:修改nice值

技术图片

f:设置显示的字段

按空格键选定,带“*”的为要显示的字段

技术图片

u:显示指定用户的进程

技术图片

V:以进程树方式显示进程之间的关系

技术图片

h:显示帮助信息

技术图片

q:退出

htop命令

? 与top命令类似,显示更美观,支持使用鼠标直接点击操作

选项:
-d #:指定延迟时间间隔;
-u UserName:仅显示指定用户的进程;
-s COLUME:以指定字段进行排序;
子命令:
l:显示选定的进程打开的文件列表;需要有lsof命令
s:跟踪选定的进程的系统调用;需要有strace命令
t:以层级关系显示各进程状态;
a:将选定的进程绑定至某指定的CPU核心;

dstat命令

? 用于生成系统资源统计的通用工具

语法:

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

dstat默认显示内容:

[root@node0 ~]# dstat
You did not select any stats, using -cdngy by default.
----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|9319B  619k|   0     0 | 164B  612B| 121   246 
  0   0 100   0   0   0|   0     0 |  60B  882B|   0     0 | 126   254 
  0   0 100   0   0   0|   0     0 |  60B  338B|   0     0 | 113   241 
  0   0 100   0   0   0|   0     0 |  60B  338B|   0     0 | 130   249 
  0   0 100   0   0   0|   0     0 |  60B  338B|   0     0 | 104   229 
  0   0 100   0   0   0|   0     0 |  60B  338B|   0     0 | 117   242

字段说明:

total-cpu-usage CPU使用率

? usr:用户进程占用的CPU时间

? sys:系统进程占用的CPU时间

? idl:空闲时间

? wai:等待磁盘I/O花费的时间

? hiq:硬中断

? siq:软中断

dsk/total 磁盘统计

? read:磁盘读

? write:磁盘写

net/total 网络统计

? recv :网络收包数

? send:网络发包数

paging 内存分页统计

? in: 换入

? out:换出

注:分页较大说明系统用了大量交换空间,当使用了交换空间时表明内存就不够用

system 系统信息

? int:中断次数

? csw:上下文切换次数

注:如果数值较大,表明CPU非常繁忙,存在大量进程等待CPU调度

dstat默认情况为1秒刷新一次数据,一直刷新下去,直至手动终止

常用选项:

? -l, --load:显示系统负载信息

技术图片

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

技术图片

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

技术图片

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

技术图片

? -m, --mem:显示MEM的相关统计数据

技术图片

? -n, --net:网络接口相关统计数据

技术图片

? -p, --proc:进程相关统计数据

技术图片

? -r, --io:I/O请求相关统计数据

技术图片

? -s, --swap:显示swapped的相关统计数据

技术图片

? --tcp:tcp连接信息

? --udp:udp连接信息

? --raw:裸套接字

? --socket:套接字

技术图片

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

? --top-io:显示最占用io的进程

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

? --top-latency:显示延迟最大的进程

技术图片

ps命令

? 报告当前的进程快照

使用:

? ps [options]:

选项风格:

? 1.UNIX options,需要加-

? 2.BSD options,不加-

? 3.GNU long options,需要--

选项:

? a:所有与终端相关的进程

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

? u:以用户为中心组织进程状态信息显示

? -e:显示所有进程

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

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

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

常用组合:

? ps aux

? ps -ef

? ps -eFH

? ps -eo/ps axo

? o field1,field2....:自定义显示字段,以逗号分隔

? 常用字段有:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio

例:

[root@node0 ~]# ps axo user,pid,ni,pri,cmd
USER        PID  NI PRI CMD
root          1   0  19 /usr/lib/systemd/systemd --system --deserialize 20
root          2   0  19 [kthreadd]
root          3   0  19 [ksoftirqd/0]
root          5 -20  39 [kworker/0:0H]
root          7   - 139 [migration/0]
root          8   0  19 [rcu_bh]

[root@node0 ~]# ps -eo user,pid,cmd
USER        PID CMD
root          1 /usr/lib/systemd/systemd --system --deserialize 20
root          2 [kthreadd]
root          3 [ksoftirqd/0]
root          5 [kworker/0:0H]
root          7 [migration/0]
root          8 [rcu_bh]
root          9 [rcu_sched]
root         10 [lru-add-drain]
root         11 [watchdog/0]
root         12 [watchdog/1]
root         13 [migration/1]

?

[root@node0 ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 193716  3604 ?        Ss   Aug23   0:09 /usr/lib/systemd/systemd --system --deserialize 20
root          2  0.0  0.0      0     0 ?        S    Aug23   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Aug23   0:08 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   Aug23   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    Aug23   0:01 [migration/0]
root          8  0.0  0.0      0     0 ?        S    Aug23   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    Aug23   0:07 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   Aug23   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    Aug23   0:03 [watchdog/0]
root         12  0.0  0.0      0     0 ?        S    Aug23   0:00 [watchdog/1]

字段说明:

? USER:进程发起者

? PID:进程ID

? %CPU:cup占用

? %MEM:内存占用

? VSZ:虚拟内存集

? RSS:常驻内存集

? TTY:终端

? STAT:运行状态

? R:运行

? S:可中断睡眠

? D:不可中断睡眠

? T:停止

? Z:僵尸态

? +:前台进程

? l:多线程进程

? N:低优先级进程

? <:高优先级进程

? s:session leader

以上是关于htop/dstat/top/ps命令的使用的主要内容,如果未能解决你的问题,请参考以下文章

CMD命令使用方法

linux中man命令的使用

FTP的常用命令和使用方法

求iphone上使用的shell工具,以及shell命令的使用方法 请高手详解,谢谢

如何使用终端命令注销Mac?使用终端注销Mac的方法!

Windows下怎么使用curl命令