005.系统管理监测命令

CPU性能评估

vmstat命令
  • 作用:可以对操作系统的内存信息、进程状态、CPU活动等进行监控。
  • 语法:vmstat(选项)(参数)
    • 选项

      • -a:显示活动内页;
      • -f:显示启动后创建的进程总数;
      • -m:显示slab信息;
      • -n:头信息仅显示一次;
      • -s:以表格方式显示事件计数器和内存状态;
      • -d:报告磁盘状态;
      • -p:显示指定的硬盘分区状态;
      • -S:输出信息的单位。
    • 参数

      • 事件间隔:状态信息刷新的时间间隔;
      • 次数:显示报告的次数。
    • 举例
      [root@study ~]# vmstat 3 5
      每2秒统计一次输出,统计5次后停止输出。

    • 解释

      • procs

        1. r列表示运行和等待CPU时间片的进程数,此数值如果长期大于系统CPU个数,说明CPU不足,需要增加CPU。
        2. b列表在等待资源的进程数,如正在等待I/O或者内存交换等。
      • memory

        1. swpd列表示切换到内存交换区的内存数量(以kb为单位)。
        2. free列表示当前空闲的物理内存数量(以kb为单位)。
        3. buff列表示缓冲区缓存的内存数量,一般对块设备的读写才需要缓冲。
        4. cache列表示页面缓存的内存数量,一般作为文件系统缓存,如果cache值较大,说明缓存的文件数角度,若此时的IO中bi较小,说明文件系统效率比较高。
      • swap

        1. si列表示由磁盘调入内存,即内存进入内存交换区的数量。
        2. so列表示内存调入磁盘,即内存交换区进入内存的数量。
          注意:如果si、so长期不为0,则表示系统内存不足。
      • io:显示磁盘读写状况

        1. bi列表示从块设备读入数据的总量(即读磁盘)(每秒kb)。
        2. bo列表示写入到块设备的数据总量(即写磁盘)(每秒kb)。
      • system:显示猜忌间隔内发生的中断次数。

        1. in列表示在某一时间间隔中观测到的每秒设备中断次数。
        2. cs列表示每秒产生的上下文切换次数。
          注意:以上两个值越大,则由内核占用CPU的时间会越多。
      • cpu:显示CPU的使用状态。

        1. us列显示用户进程占用CPU的时间百分比,如果长期大于50%,则需要重点关注。
        2. sy列显示内核进程占用CPU的时间百分比。
        3. id列显示了CPU处在空闲状态的百分比。
        4. wa列显示了I/O等待所占用的CPU时间百分比。wa值越高,说明I/O等待越严重。
          **注意:
          1. us+sy的参考值为80%,如果大于80%,可能存在CPU资源不足。
          2. wa的参考是为20%,如果wa超过20%,说明I/O等待严重。**
sar命令
  • 作用:Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。
  • 语法:sar(选项)(参数)
    • 选项

      • -A:显示所有的报告信息;
      • -b:显示I/O速率;
      • -B:显示换页状态;
      • -c:显示进程创建活动;
      • -d:显示每个块设备的状态;
      • -e:设置显示报告的结束时间;
      • -f:从指定文件提取报告;
      • -i:设状态信息刷新的间隔时间;
      • -P:报告每个CPU的状态;
      • -R:显示内存状态;
      • -u:显示CPU利用率;
      • -v:显示索引节点,文件和其他内核表的状态;
      • -w:显示交换分区状态;
      • -x:显示给定进程的状态。
    • 参数

      • 间隔时间:每次报告的间隔时间(秒);
      • 次数:显示报告的次数。
    • 举例
      [root@study ~]# sar -u 3 5

    • 解释

      • %user列显示了用户进程占用CPU的时间百分比。
      • %nice列显示了运行正常进程占用CPU的时间百分比。
      • %system列显示了系统进程占用CPU的时间百分比。
      • %iowait列显示了I/O等待所占用CPU的时间百分比。
      • %steal列显示了在内存相对进展的环境下pageini强制对不同的页面进行的steal操作。
      • %idle列显示了CPU处在空闲状态的时间百分比。
        注意:
        1. Average列是对之上的所有信息进行统计,计算平均值。
        2. 若有多个CPU,可使用sar -P 0 3 5对第一个CPU进行查询,第二个CPU即位sar -P 1 3 5。
iostat命令
  • 作用:用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
  • 语法:iostat(选项)(参数)
    • 选项

      • -c:仅显示CPU使用情况;
      • -d:仅显示设备利用率;
      • -k:显示状态以千字节每秒为单位,而不使用块每秒;
      • -m:显示状态以兆字节每秒为单位;
      • -p:仅显示块设备和所有被使用的其他分区的状态;
      • -t:显示每个报告产生时的时间;
      • -V:显示版号并退出;
      • -x:显示扩展状态。
    • 参数

      • 间隔时间:每次报告的间隔时间(秒);
      • 次数:显示报告的次数。
    • 举例
      [root@study ~]# iostat -x /dev/sda1

    • 解释

      • Device:监测设备名称;
      • rrqm/s:每秒需要读取需求的数量;
      • wrqm/s:每秒需要写入需求的数量;
      • r/s:每秒实际读取需求的数量;
      • w/s:每秒实际写入需求的数量;
      • rsec/s:每秒读取区段的数量;
      • wsec/s:每秒写入区段的数量;
      • rkB/s:每秒实际读取的大小,单位为KB;
      • wkB/s:每秒实际写入的大小,单位为KB;
      • avgrq-sz:需求的平均大小区段;
      • avgqu-sz:需求的平均队列长度;
      • await:等待I/O平均的时间(milliseconds);
      • svctm:I/O需求完成的平均时间;
      • %util:被I/O需求消耗的CPU百分比。

内存性能评估

free命令
  • 作用:显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
  • 语法:free(选项)
    • 选项

      • -b:以Byte为单位显示内存使用情况;
      • -k:以KB为单位显示内存使用情况;
      • -m:以MB为单位显示内存使用情况;
      • -o:不显示缓冲区调节列;
      • -s<间隔秒数>:持续观察内存使用状况;
      • -t:显示内存总和列;
      • -V:显示版本信息。
    • 举例
      [root@study ~]# free -m

    • 解释

      • 程序可使用内存=free+buffers+cached(即+ buffers/cache的值)
      • 程序已使用内存=user-buffres-cached
      • 物理内存可分配的内存值为free,物理总内存为total。
        注意:处于buffers和cached中的内存对于应用程序而言是可用的,对于内核而言是无法分配的,内核可分配的内存仅为free的值。
    • 规律

      • (+ buffers/cache)/系统物理内存<20%:系统内存资源紧缺,需要增加系统内存;
      • 20%<(+ buffers/cache)/系统物理内存<70%:系统内存资源基本满足应用需求,暂不影响性能;
      • (+ buffers/cache)/系统物理内存>70%:系统内存资源非常充足,不影响系统性能。
watch与free结合
  • 作用:watch命令以周期性的方式执行给定的指令,指令输出以全屏方式显示。
  • 语法:watch(选项)(参数)
    • 选项

      • -n:指定指令执行的间隔时间(秒);
      • -d:高亮显示指令输出信息不同之处;
      • -t:不显示标题。
    • 参数

      • 指令:需要周期性执行的指令。
    • 举例
      [root@study ~]# watch -n 3 -d free -m

sar命令
  • 作用:见上
  • 语法:见上
    • 举例
      [root@study ~]# sar -r
    • 解释
      • kbmemfree:表示空闲物理内存大小;
      • kbmemused:表示已使用的物理内存空间大小;
      • %memused:表示已使用的内存占总内存大小的百分比;
      • kbbuffers:缓冲区缓存大小;
      • kbcached:缓存区缓存大小;
      • kbcommit:应用程序当前使用的内存大小;
      • %commit:应用程序当前使用的内存百分比。

磁盘I/O性能评估

sar -d命令
  • 作用:见上
  • 语法:见上
    • 举例
      [root@study ~]# sar -d 2 3
    • 解释
      • DEV:表示磁盘设备名称;
      • tps:表示每秒到屋里磁盘的传送数;
      • rd_sec/s:表示每秒从设备读取的扇区数(1扇区=512字节);
      • wr_sec/s:表示每秒写入的设备的扇区数;
      • avgrq-sz:表示平均每次设备I/O操作的数据大小(以扇区为单位);
      • avgqu-sz:表示平均I/O队列长度;
      • await:表示平均每次设备I/O操作的等待时间(以毫秒为单位);
      • svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位);
      • %util:表示一秒钟有百分之几的是用于I/O操作。
iostat -x命令:见上
vmstat -d:见上

网络性能评估

ping命令:略
netstat -i命令
  • 作用:显示网络接口信息。
  • 语法:略
    • 举例
      [root@study ~]# netstat -i
    • 解释
      • Iface:表示网络设备的接口名称;
      • MTU:表示最大传输单元,单位为字节;
      • Met:度量值,供某些操作系统用,用于计算一条路由的成本;
      • RX-OK/TX-OK:表示已经准确无误地接受/发送了多少数据包;
      • RX-ERR/TX-ERR:表示接受/发送数据包产生了多少错误;
      • RX-DRP/TX-DRP:表示接受/发送数据包时丢弃了多少数据包;
      • RX-OVR/TX-OVR:表示由于误差而遗失了多少数据包;
      • Flg:表示接口标记,其具体含义如下——
        • L:表示该接口是个回环设备;
        • B:表示设置了广播地址;
        • M:表示接受所有数据包;
        • R:表示接口正在运行;
        • U:表示接口处于活动状态;
        • O:表示在该接口上禁用arp;
        • P:表示一个点到点的连接。
netstat -r命令
  • 作用:检查系统的路由表信息。
  • 语法:略
    • 举例
    • 解释
sar -n命令
  • 作用:见上
  • 语法:sar -n [类型]
    • 类型

      1. DEV:显示网络接口信息;
      2. EDEV:显示关于网络错误的统计数据;
      3. SOCK:显示套接字信息;
      4. FULL:显示所有类型。
    • 举例
      [root@study ~]# sar -n DEV 2 3

    • 解释

      • IFACE:表示网络接口设备;
      • rxpck/s:表示每秒钟接受的数据包大小;
      • txpck/s:表示每秒钟发送的数据包大小;
      • rxkB/s:表示每秒钟接受的字节数;
      • txkB/s:表示每秒钟发送的字节数;
      • rxcmp/s:表示每秒钟接受的压缩数据包;
      • txcmp/s:表示每秒钟发送的压缩数据包;
      • rxmcst/s:表示每秒钟接受的多播数据包。
posted @ 2021-11-14 14:53  木二  阅读(429)  评论(0编辑  收藏  举报