wuptimevmstattop

w

1
2
3
4
root@dr_pure:~# w
21:08:10 up 3:06, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 123.123.123.123 21:06 1.00s 0.02s 0.00s w

第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。

第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。

uptime

1
2
root@dr_pure:~# uptime
21:09:44 up 3:08, 1 user, load average: 0.00, 0.00, 0.00

从左到右依次显示了当前时间,系统已启动的时间,当前上线人数,系统平均负载。

vmstat

1
2
3
4
root@dr_pure:~# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 440288 28228 439352 0 0 17 36 151 104 0 0 93 0 7

1.procs是表示进程状态,r代表可运行(正在运行或等待运行)进程的个数,和核心数有关。b代表处于不可中断睡眠态的进程个数(被阻塞的队列的长度)。

2.memory表示内存状态,其中swpd是指交换内存的使用总量,free是空闲物理内存总量,buff指用户buffer的内存总量,cache是用于cache的内存总量。

3.swap是指交换分区的状态,si代表从磁盘交换进内存的数据速率(kb/s),so代表从内存交换至磁盘的数据速率(kb/s)。

4.io项中,bi代表从块设备读入数据到系统的速率(kb/s),bo代表保存数据至块设备的速率(kb/s)。

5.system项中,in代表interrupts 中断速率,包括时钟,cs代表context switch 进程切换速率。

6.cpu项中,us代表Time spent running non-kernel code,sy代表Time spent running kernel code,id代表Time spent idle。

此外,vmstat还有一些选项,vmstat 2表示每2秒刷新一次,vmstat 2 5表示每2秒刷新一次,共刷新5次。

top

1
2
3
4
5
6
7
8
root@dr_pure:~# top
top - 21:30:55 up 3:29, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 70 total, 1 running, 69 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 91.4 id, 0.0 wa, 0.0 hi, 0.0 si, 8.3 st
KiB Mem : 1020488 total, 438052 free, 114172 used, 468264 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 751396 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

top命令还有选项可用,top -d指定刷新时间,默认三秒,top -b全部显示所有进程,top -n刷新多少次后退出。

还有就是我们可以直接使用内置命令对命令的显示内容进程调整,以便得到我们想要的结果:

我们可以使用P以占据的CPU百分比进行排序,M以占据内存百分比排序,T以累积占据CPU时长排序。

对于首部的信息,我们可以以l命令对uptime信息关闭或打开,以t命令对cup和进程状态以不同的格式显示,或者关闭;以m命令对memory信息以不同格式进行显示或关闭;或者1命令更改CPU信息的显示格式,s更改刷新时间,k置顶终止指定进程,W保存文件,q退出。