美文网首页linux运维
linux日常管理(一)——系统监控

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

作者: awsome365 | 来源:发表于2018-10-15 23:32 被阅读0次

    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刷新一次。

    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日志。

    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

    image

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

    相关文章

      网友评论

        本文标题:linux日常管理(一)——系统监控

        本文链接:https://www.haomeiwen.com/subject/rmxczftx.html