用来快速查看系统平均负载,能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
显示虚拟内存状态(“Viryual Memor Statics”),可以报告关于进程、内存、I/O等系统整体运行状态。
语法:vmstat(选项)(参数)
vmstat 3
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 320 42188 167332 1534368 0 0 4 7 1 0 0 0 99 0 0
0 0 320 42188 167332 1534392 0 0 0 0 1002 39 0 0 100 0 0
procs :进程
memory:内存
swap
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。
有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,
如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
IO(现在的Linux版本块的大小为1kb)
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。
system(系统)
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。
CPU(以百分比表示)
us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
free -b/-k/-m : 以Byte为单位显示内存使用情况/ 以kb为单位显示内存使用情况 / 以mb为单位显示内存使用情况.
free -m
total used free shared buffers cached
Mem: 2016 1973 42 0 163 1497
-/+ buffers/cache: 312 1703
Swap: 4094 0 4094
total=used+free
可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
# iostat -x /vda
Linux 3.10.0-693.2.2.el7.x86_64 (iz2zec6q7af34l736i2uuvz) 05/22/2018 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.21 0.00 0.14 0.00 0.00 99.64
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
说明:第二行是系统信息和监测时间,第三行和第四行显示CPU使用情况,后面为I/O输出的信息。
主要用于多CPU环境下,它显示各个可用CPU的状态系你想。这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
语法:mpstat(选项)(参数)
选项:
-P:指定CPU编号。
参数:
间隔时间:每次报告的间隔时间(秒);
次数:显示报告的次数。
用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
参数:
-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。
可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
# top
top - 15:34:34 up 107 days, 4:41, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 167 total, 1 running, 166 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1016164 total, 72840 free, 498860 used, 444464 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 318488 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19807 root 20 0 202884 20040 1632 S 0.7 2.0 115:00.97 python
32361 root 20 0 532304 15084 2136 S 0.3 1.5 85:54.58 docker-containe
1 root 20 0 125336 3336 1996 S 0.0 0.3 0:59.97 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.09 kthreadd
解释:
top - 15:34:346[当前系统时间],
107 days[系统已经运行了16天],
1 user[个用户当前登录],
load average:0.00, 0.01, 0.05[系统负载,即任务队列的平均长度]
Tasks: 167 total[总进程数],
1 running[正在运行的进程数],
166 sleeping[睡眠的进程数],
0 stopped[停止的进程数],
0 zombie[冻结进程数],
%Cpu(s) [cpu指标],
KiB Mem[物理内存总量,以kb为单位]