linux日常管理(一)——系统监控

10.1 使用w查看系统负载
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令

监控系统状态

w

我们常用w查看系统负载。

[root@localhost ~]# w
 16:49:11 up  6:18,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.56.1     10:31    4:58m 14.08s  0.46s -bash
root     pts/1    192.168.56.1     16:49    4.00s  0.01s  0.01s w

第一行依次是:时间,系统启动时间,用户数,系统负载。下面是登录用户等信息。

系统负载是一段时间内使用cpu的进程数,w命令列出了三个,分别是1分钟、5分钟、15分钟的负载。负载多少就算超标了?一般不要超过逻辑cpu数量为宜。cat /proc/cpuinfo查看cpu信息。

此外还有uptime命令,其显示的和w命令第一行一样。

vmstat

如果w命令查看负载大说明cpu不够用,我们需要进一步查看系统运行的瓶颈。vmstat可以监控系统具体指标。用法:vmstat 1,也可以vmstat 1 5显示5次:

[root@localhost ~]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0  11264  73104      0 393116    0    1    18    18   33   64  0  0 100  0  0
 0  0  11264  73080      0 393116    0    0     0     0   27   48  0  0 100  0  0
 0  0  11264  73080      0 393116    0    0     0     1   23   44  0  0 100  0  0
 0  0  11264  73080      0 393116    0    0     0     0   21   46  0  1 99  0  0
 0  0  11264  73080      0 393116    0    0     0     0   15   34  0  0 100  0  0
[root@localhost ~]#

procs memory swap io system cpu 依次是进程、内存、交换分区、磁盘读写、系统、cpu。

关键的几列:r,b,swap,si,so,bi,bo,us,wa:

  • r 即run,正在运行的进程数
  • b 即block,等待的进程树
  • si 从交换分区写入内存
  • io 从内存写入交换分区
  • bi 从磁盘写入内存
  • bo 从内存写入磁盘
  • us 用户态占用百分比,另外sy是系统态占用,id是空闲
  • wa 等待的百分数

cpu运行,一个时间下只能处理一个任务,多任务是轮流处理进程实现的。所以就会有“排队的进程”。

top

top是用来查看进程使用资源情况的工具。通过vmstat知道系统瓶颈,进一步用top查看具体进程运行情况。top命令会动态显示,每3s刷新一次。

linux日常管理(一)——系统监控_第1张图片
top命令图

默认以cpu使用排序,按M则以内存排序,按P则以cpu排序,按1显示所有cpu,再按1返回汇总cpu。q退出。RES物理内存大小(KiB)。我们主要关注cpu和mem百分比,和列表上面的负载、cpu百分数。

在%cpu一行中,us是用户态占用百分数,sy是系统态占用,ni、hi、si不用关注(常为0),id为空闲,st被偷走的cpu(如果linux上运行虚拟软件会用到)。

负载和cpu使用的关系:从定义上理解,负载关注进程数,%cpu关注cpu使用率。两者有关联,也不完全现行相关。比如网络很慢,这时会有许多进程等待,可能高负载但cpu没有跑足。

top -c 显示详细的进程信息。top -bn1 静态显示所有进程,适合写脚本时用。

sar

sar是系统管理的瑞士军刀,我主要用来监控流量,其他功能可以慢慢研究。

如果系统没有sar命令,yum install -y sysstat
sar 在没有指定选项时会调取/var/log/sa日志。

linux日常管理(一)——系统监控_第2张图片
image

监控网卡流量使用sar -n DEV

[root@localhost ~]# sar -n DEV
Linux 3.10.0-862.el7.x86_64 (localhost.localdomain)     2018年10月15日     _x86_64_    (1 CPU)

10时17分41秒       LINUX RESTART

10时20分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10时30分01秒    enp0s3    420.91     39.20    612.90      2.33      0.00      0.00      0.00
10时30分01秒    enp0s8      2.42      2.13      0.18      1.05      0.00      0.00      0.00
10时30分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:    enp0s3    420.91     39.20    612.90      2.33      0.00      0.00      0.00
平均时间:    enp0s8      2.42      2.13      0.18      1.05      0.00      0.00      0.00
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

后三列用的不多。rxpck/s是每秒接收数据包,txpck/s每秒发送数据包,rxkB/s每秒接收数据,txkB/s每秒发送数据。一般数据包几千,上万的话可能被攻击。

上面说sar是瑞士军刀,它还可以查看负载、磁盘读写等。sar -q系统负载,sar -b磁盘读写。sar每10分钟写入一次系统状态。/var/log/sa就是其日志,使用sar -f /var/log/sa/saxx查看。xx为日期,这个目录内文件保留一个月。需要注意的是saxx是二进制文件,只能用sar查看,目录下还有sarxx文件,是普通文件。

sar每10分钟记录一次系统状态,有时想实时查看网卡流量就用到nload命令。

centos默认没有安装nload:
yum install -y epel-release
yum install -y nload

linux日常管理(一)——系统监控_第3张图片
image

第一行显示了网卡名称、ip和网卡数量。按左右键切换网卡。下面图形上面是进入计算机incoming,下面是出计算机outgoing。vps买带宽一般指outgoing的带宽。

你可能感兴趣的:(linux日常管理(一)——系统监控)