精华内容
下载资源
问答
  • linux 磁盘io监控

    万次阅读 2018-04-14 14:23:45
    我们在线上linux服务器排查问题时,一般会通过top、free、netstat、df -h等命令排查cpu、内存、网络和磁盘等问题。有的时候我们需要更进一步了解磁盘io的使用情况,那么本文就是重点讲解一下如何查看linux磁盘io...

    我们在线上linux服务器排查问题时,一般会通过top、free、netstat、df -h等命令排查cpu、内存、网络和磁盘等问题。有的时候我们需要更进一步了解磁盘io的使用情况,那么本文就是重点讲解一下如何查看linux的磁盘io信息的。

    一、iostat:

    安装:

    yum install sysstat

    1、基本用法:

    $iostat -d -k 1 10

    1)参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。

    2)含义:

    • tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
    • kB_read/s:每秒从设备(drive expressed)读取的数据量;
    • kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
    • kB_read:读取的总数据量;
    • kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

    上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时统计的磁盘总TPS是39.29,下面是各个分区的TPS。(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和)

    3)指定监控的设备名称为sda:

    iostat -d sda 2

    2、-x 参数:

    1)使用-x参数我们可以获得更多统计信息。

    2)含义:

    • rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);
    • wrqm/s:每秒这个设备相关的写入请求有多少被Merge了;
    • rsec/s:每秒读取的扇区数;
    • wsec/:每秒写入的扇区数。
    • rKB/s:The number of read requests that were issued to the device per second;
    • wKB/s:The number of write requests that were issued to the device per second;
    • avgrq-sz 平均请求扇区的大小
    • avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。    
    • await:  每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
    • svctm    表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,         系统上运行的应用程序将变慢。
    • %util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。

    一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

    3、-c参数:

    iostat还可以用来获取cpu部分状态值:

    iostat -c 1 10
    avg-cpu: %user %nice %sys %iowait %idle
    1.98 0.00 0.35 11.45 86.22
    avg-cpu: %user %nice %sys %iowait %idle
    1.62 0.00 0.25 34.46 63.67

    4、常用方法:

    iostat -d -k 1 10         #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
    iostat -d -m 2            #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
    iostat -d -x -k 1 10      #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态

    实例:

    iostat -d -x -k 1
    Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    sda          1.56  28.31  7.84 31.50   43.65    3.16    21.82     1.58     1.19     0.03    0.80   2.61  10.29
    sda          1.98  24.75 419.80  6.93 13465.35  253.47  6732.67   126.73    32.15     2.00    4.70   2.00  85.25
    sda          3.06  41.84 444.90 54.08 14204.08 2048.98  7102.04  1024.49    32.57     2.10    4.21   1.85  92.24

    可以看到磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了。

    ostat -d -k 1 |grep sda10
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda10            60.72        18.95        71.53  395637647 1493241908
    sda10           299.02      4266.67       129.41       4352        132
    sda10           483.84      4589.90      4117.17       4544       4076
    sda10           218.00      3360.00       100.00       3360        100
    sda10           546.00      8784.00       124.00       8784        124
    sda10           827.00     13232.00       136.00      13232        136

    上面看到,磁盘每秒传输次数平均约400;每秒磁盘读取约5MB,写入约1MB。

    二、iotop:

    1、iotop是一个用python编写的类似top界面的磁盘I/O监控工具。可以通过yum install iotop安装,运行该命令后如图:

    • DISK READ和DISK WRITE字段代表块设备在采样时间内的I/O带宽;
    • SWAPIN和IO字段表示当前进程或线程花费在页面换入和等待I/O的时间;
    • PRIO字段表示I/O优先级;
    • Total DISK READ和Total DISK WRITE表示总的I/O读写情况

    2、常用参数:

    -o --only 只显示实际具有I/O操作的进程或线程。可以通过快捷键o进行控制
    -b --batch 非交互式模式,可以用于保存输出结果
    -n 刷新次数
    -d 刷新间隔时间
    -P 只显示进程,不显示线程
    -p 监控指定进程或线程
    -k 使用KB表示I/O带宽。默认情况下,iotop使用B/s,K/s,M/s表示I/O带宽。
    -u 监控指定用户的I/O操作情况
    -t 在每行输出加上时间戳
    -q 只在第一次输出时显示列名称
    -qq 不显示列名称
    -qqq 不显示总的I/O信息

    $ sudo iotop -b -d 1 -n 5  -o  -u mongod -P  -p 1524  -qqq
     1524 be/4 mongod      0.00 B/s  527.27 K/s  0.00 %  0.54 % mongod -f /etc/mongod.conf
     1524 be/4 mongod      0.00 B/s  566.84 K/s  0.00 %  1.40 % mongod -f /etc/mongod.conf
     1524 be/4 mongod      0.00 B/s  766.42 K/s  0.00 %  0.70 % mongod -f /etc/mongod.conf
     1524 be/4 mongod      0.00 B/s  946.21 K/s  0.00 %  0.37 % mongod -f /etc/mongod.conf

    展开全文
  • Unix/Linux 磁盘 I/O 性能监控命令

    千次阅读 2013-09-26 09:06:37
    Unix/Linux 磁盘 I/O 性能监控命令磁盘 I/O 性能监控指标和调优方法在介绍磁盘 I/O 监控命令前,我们需要了解磁盘 I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能。磁盘 I/O 性能监控的指标主要包括:...
    
     

    Unix/Linux 磁盘 I/O 性能监控命令

    磁盘 I/O 性能监控指标和调优方法

    在介绍磁盘 I/O 监控命令前,我们需要了解磁盘 I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能。磁盘 I/O 性能监控的指标主要包括:

    指标 1:每秒 I/O 数(IOPS 或 tps)

    对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘 I/O, 磁盘的 IOPS 就是每秒磁盘连续读次数和连续写次数之和。当传输小块不连续数据时,该指标有重要参考意义。

    指标 2:吞吐量(Throughput)

    指硬盘传输数据流的速度,传输数据为读出数据和写入数据的和。其单位一般为 Kbps, MB/s 等。当传输大块不连续数据的数据,该指标有重要参考作用。

    指标 3:平均 I/O 数据尺寸

    平均 I/O 数据尺寸为吞吐量除以 I/O 数目,该指标对揭示磁盘使用模式有重要意义。一般来说,如果平均 I/O 数据尺寸小于 32K,可认为磁盘使用模式以随机存取为主;如果平均每次 I/O 数据尺寸大于 32K,可认为磁盘使用模式以顺序存取为主。

    指标 4:磁盘活动时间百分比(Utilization)

    磁盘处于活动时间的百分比,即磁盘利用率,磁盘在数据传输和处理命令(如寻道)处于活动状态。磁盘利用率与资源争用程度成正比,与性能成反比。也就是说磁盘利用率越高,资源争用就越严重,性能也就越差,响应时间就越长。一般来说,如果磁盘利用率超过 70%,应用进程将花费较长的时间等待 I/O 完成,因为绝大多数进程在等待过程中将被阻塞或休眠。

    指标 5:服务时间(Service Time)

    指磁盘读或写操作执行的时间,包括寻道,旋转时延,和数据传输等时间。其大小一般和磁盘性能有关,CPU/ 内存的负荷也会对其有影响,请求过多也会间接导致服务时间的增加。如果该值持续超过 20ms,一般可考虑会对上层应用产生影响。

    指标 6:I/O 等待队列长度(Queue Length)

    指待处理的 I/O 请求的数目,如果 I/O 请求压力持续超出磁盘处理能力,该值将增加。如果单块磁盘的队列长度持续超过 2,一般认为该磁盘存在 I/O 性能问题。需要注意的是,如果该磁盘为磁盘阵列虚拟的逻辑驱动器,需要再将该值除以组成这个逻辑驱动器的实际物理磁盘数目,以获得平均单块硬盘的 I/O 等待队列长度。

    指标 7:等待时间(Wait Time)

    指磁盘读或写操作等待执行的时间,即在队列中排队的时间。如果 I/O 请求持续超出磁盘处理能力,意味着来不及处理的 I/O 请求不得不在队列中等待较长时间。

    通过监控以上指标,并将这些指标数值与历史数据,经验数据以及磁盘标称值对比,必要时结合 CPU、内存、交换分区的使用状况,不难发现磁盘 I/O 潜在或已经出现的问题。但如果避免和解决这些问题呢?这就需要利用到磁盘 I/O 性能优化方面的知识和技术。限于本文主题和篇幅,仅列出一些常用的优化方法供读者参考:

    1. 调整数据布局,尽量将 I/O 请求较合理的分配到所有物理磁盘中。
    2. 对于 RAID 磁盘阵列,尽量使应用程序 I/O 等于条带尺寸或者为条带尺寸的倍数。并选取合适的 RAID 方式,如 RAID10,RAID5。
    3. 增大磁盘驱动程序的队列深度,但不要超过磁盘的处理能力,否则,部分 I/O 请求会因为丢失而重新发出,这将降低性能。
    4. 应用缓存技术减少应用存取磁盘的次数,缓存技术可应用在文件系统级别或者应用程序级别。
    5. 由于多数数据库中已包括经优化后的缓存技术,数据库 I/O 宜直接存取原始磁盘分区(raw partition)或者利用绕过文件系统缓存的 DIO 技术(direct IO)
    6. 利用内存读写带宽远比直接磁盘 I/O 操作性能优越的特点,将频繁访问的文件或数据置于内存中。
    磁盘 I/O 性能监控命令简介

    Unix/Linux 提供了两个非常有用的用于磁盘 I/O 性能监控的命令:iostat 和 sar。

    iostat 命令主要通过观察物理磁盘的活动时间以及他们的平均传输速度,监控系统输入 / 输出设备负载。根据 iostat 命令产生的报告,用户可确定一个系统配置是否平衡,并据此在物理磁盘与适配器之间更好地平衡输入 / 输出负载。iostat 工具的主要目的是通过监控磁盘的利用率,而探测到系统中的 I/O 瓶颈。不同操作系统命令格式输出格式略有不同,管理员可以通过查看用户手册来确定它的用法。

    sar 命令报告 CPU 的使用情况,I/O 以及其它系统行为。sar 命令可以收集,报告以及保存系统行为信息。以这种方式收集到的数据对于确定系统的时间周期特征和决定峰值使用时间是很有用的。但要注意的是,sar 命令自己运行时会产生相当数量的读写,因此最好在没有工作量的情况下运行 sar 统计,看看 sar 对总的统计数字有多大的影响。

    AIX 环境下,iostat 和 sar 位于文件集 bos.acct 中,是基本系统 (Base Operating System) 的一部分,在缺省安装情况下无需进行任何配置或任何额外包安装。

    Linux 环境下,iostat 和 sar 包含在 sysstat 包中。sysstat 是 Linux 系统中的常用工具包。不同的 Linux 系统或不同的硬件平台,安装包名字和具体命令可能会有微小差异。清单1为一个在 RHEL5.3 上安装 sysstat 包的例子。

    iostat -d -x 10 3

    Device:  rrqm/s  wrqm/s  r/s  w/s  rsec/s  wsec/s avgrq-sz avgqu-sz  await  svctm  %util
    主要字段含义如下:

    r/s 每秒读操作数。

    w/s 每秒写操作数。

    rsec/s 每秒从设备读取的扇区数量。

    wsec/s 每秒向设备写入的扇区数量。

    avgrq-sz I/O 请求的平均扇区数。

    avgqu-sz I/O 请求的平均队列长度。

    await I/O 请求的平均等待时间,单位为毫秒。

    svctm I/O 请求的平均服务时间,单位为毫秒。

    %util 处理 I/O 请求所占用的时间的百分比,即设备利用率。
    #sar -pd 10 3
    输出的主要字段含义如下:

    DEV 正在监视的块设备

    tps 每秒钟物理设备的 I/O 传输总量

    rd_sec/s 每秒从设备读取的扇区数量

    wr_sec/s 每秒向设备写入的扇区数量

    avgrq-sz I/O 请求的平均扇区数

    avgqu-sz I/O 请求的平均队列长度

    await I/O 请求的平均等待时间,单位为毫秒

    svctm I/O 请求的平均服务时间,单位为毫秒

    %util I/O 请求所占用的时间的百分比,即设备利用率
    Unix/Linux 系统磁盘 I/O 性能监控自动化脚本示例

    前文介绍了 AIX 与 Linux 磁盘 I/O 监控的手段,本节将结合实例介绍磁盘 I/O 监控的自动化脚本的设计和实现。

    设计思路

    1 . 监控指标

    前文介绍了多个监控指标,比如吞吐量,每秒 I/O 数,平均单次 I/O 响应时间,磁盘利用率等,用户可以根据自身系统和应用的特点选取监控指标。下文将以磁盘利用率为例进行监控脚本的设计。

    2 .监控手段

    对于 AIX, 命令“iostat -d”的输出字段“% tm_act”反映磁盘利用率;对于 Linux, 命令“iostat -d -x”的输出字段“%util”反映磁盘利用率。监控的频次可以通过“iostat”命令本身的参数指定。

    3. 告警机制

    一般来说,如果磁盘使用率长时间达到 75% 或 80%, 通常会视为磁盘较忙,一般需进行调整磁盘布局,调整应用使用分配等管理活动,如果磁盘使用率偶尔较高,只需要继续监视即可。因此告警既不能对于偶发现象频繁告警,也不能放过持续时间较长的现象,本例的告警机制设定为“在一定时间间隔内的一定比例的监控记录超出设定的磁盘利用率门限值即告警”

    4 .日志

    要保留磁盘 I/O,分析活动,告警信息等原始信息,便于以后进行问题分析,定位。

    磁盘 I/O 分析和告警自动脚本

    结合上文设计思路,笔者开发了磁盘 I/O 分析和告警脚本 I/OAnalyzer.sh, 我们的脚本在 RHEL 5.3、SLES 11、AIX 5.3 和 AIX 6.1 上测试通过。

    脚本 IOAnalyzer.sh 的第一部分先进行了初始化,检验并处理输入参数,对未输入的参数指定默认值。

    清单 6. IOAnalyzer.sh 脚本初始化部分

    01. #!/bin/sh
    02.  # ================================================================
    03.  # Script Name:  IOAnalyzer.sh
    04.  # Desciption:   To analyze output of 'iostat -d', send an alert to admin
    05.  #              if disk utilization counter reach defined threshold
    06.  # Date:         May 19, 2009
    07.  #================================================================
    08.  
    09. # -----------------------------------------------------------------
    10.  # Function definitions...                                定义函数
    11.  #----------------------------------------------------------------
    12.  
    13. function usage {
    14.  echo ""
    15.  echo "usage: IOAnalyzer.sh -i inIostatFile [ -l outLogFile ] \
    16.  [ -a outAlertFile ] [ -u dishUtil ] [ -r rateGEUtil ]"
    17.  echo ""
    18.  echo "For example: IOAnalyzer.sh -i /tmp/iostat.out -l /tmp/logFile \
    19.  -a /tmp/aletFile -u 80 -r 70"
    20.  echo "For AIX, please run 'iostat -d [ <interval> [ <count> ] \
    21.  to create inIostatFile"
    22.  echo "For Linux, please run 'iostat -d -x [ <interval> [ <count> ] \
    23.  to create inIostatFile"
    24.  exit 1
    25.  }
    26.  
    27. # ----------------------------------------------------------------
    28.  # Process command-line arguments                          命令行参数处理
    29.  # ----------------------------------------------------------------
    30.  while getopts :i:l:a:u:r: opt
    31.  do
    32.  case "$opt" in
    33.  i) inIostatFile="$OPTARG";;
    34.  l) outLogFile="$OPTARG";;
    35.  a) outAlertFile="$OPTARG";;
    36.  u) diskUtil="$OPTARG";;
    37.  r) rateGEUtil="$OPTARG";;
    38.  \?) usage;;
    39.  esac
    40.  done
    41.  
    42. #----------------------------------------------------------------
    43.  # Input validation                                       输入验证
    44.  #----------------------------------------------------------------
    45.  
    46. if [ ! -f "$inIostatFile" ]
    47.  then
    48.  echo "error: invalid Augument inIostatFile in OPTION -i "
    49.  usage
    50.  exit 1
    51.  fi
    52.  #---------------------------------------------------------------
    53.  
    54. # Set values, if unset                                   设置变量
    55.  # ----------------------------------------------------------------
    56.  
    57. outLogFile=${outLogFile:-${inIostatFile}.log}
    58.  outAlertFile=${outAlertFile:-${inIostatFile}.alert}
    59.  diskUtil=${diskUtil:-'80'}
    60.  rateGEUtil=${rateGEUtil:-'60'}

    接下来, IOAnalyzer.sh 脚本查询日志,通过计算起止行的办法定位 IO 输出文件的待分析文本。

    清单 7. IOAnalyzer.sh 脚本定位 I/O 输出文件待分析部分

    01. # ----------------------------------------------------------------
    02.  # Identify the lines to be analyzed between StartLine and Endline
    03.  # 定位日志中待分析文本
    04.  
    05. # ----------------------------------------------------------------
    06.  
    07. if [ ! -f "$outLogFile" ] || [ ! tail -1 "$outLogFile"|grep 'ENDLINE']
    08.  then
    09.  StartLineNum=1;
    10.  else
    11.  CompletedLine=`tail -1 "$outLogFile" grep 'ENDLINE' | \
    12.  awk '{print $4}'|cut -d: -f2`
    13.  StartLineNum=`expr 1 + $CompletedLine`
    14.  fi
    15.  
    16. eval "sed -n '${StartLineNum},\$p' $inIostatFile" > ${inIostatFile}.tail
    17.  
    18. LineCount=`cat ${inIostatFile}.tail|wc -l|awk '{print $1}'`
    19.  EndLineNum=`expr $LineCount + $StartLineNum`

    清单 7 中的脚本实现了按行分析上文定位的 iostat 输出,如果某行磁盘利用率小于先前定义的门限值,则在行尾标记“OK”,如果某行磁盘利用率大于等于先前定义的门限值,则在行尾标记“Alarm”。并且脚本中对于 AIX 和 Linux 输出格式和磁盘命名的不同作了相应处理。

    清单 8. IOAnalyzer.sh 按行分析 iostat 输出

    01. # ----------------------------------------------------------------
    02.  # Analyze 'iostat' output, append "Alarm" or "OK" at the end of each# line
    03.  
    04. # ----------------------------------------------------------------
    05.  OS=`uname`
    06.  case "$OS" in
    07.  AIX)
    08.  diskUtilLabel="% tm_act"
    09.  diskUtilCol=2
    10.  diskPrefix="hdisk"
    11.  ;;
    12.  Linux)
    13.  diskUtilLabel="%util"
    14.  diskUtilCol=14
    15.  diskPrefix="hd|sd"
    16.  ;;
    17.  *)      echo "not support $OS operating system!"
    18.  exit 1;
    19.  ;;
    20.  esac
    21.  
    22. eval "cat ${inIostatFile}.tail egrep '${diskPrefix}' \
    23.  awk '{if ( \$${diskUtilCol} * 100 < ${diskUtil} ) \
    24.  {\$20 = \"OK\"; print \$1\"\t\"\$${diskUtilCol}\"\t\"\$20 } \
    25.  else {\$20 = \"Alarm\"; print \$1\"\t\"\$${diskUtilCol}\"\t\"\$20 } }'" \
    26.  > ${outLogFile}.tmp

    下文脚本给出一个告警触发的例子,如果过高的磁盘利用率计数占总分析行数的比率达到或超出预定的比率,脚本会给 root 用户发一封告警邮件。

    清单 9. IOAnalyzer.sh 触发告警

    01. # ----------------------------------------------------------------
    02.  # Send admin an alert if disk utilization counter reach defined
    03.  # threshold
    04.  
    05. # ----------------------------------------------------------------
    06.  Alert="NO"
    07.  for DISK in `cut -f1  ${outLogFile}.tmp | sort -u`
    08.  do
    09.  numAlarm=`cat ${outLogFile}.tmp | grep "^$DISK.*Alarm$" |wc -l`
    10.  numRecord=`cat ${outLogFile}.tmp | grep "^$DISK" |wc -l`
    11.  rateAlarm=`expr $numAlarm \* 100 / $numRecord`
    12.  if [ $rateAlarm -ge $rateGEUtil ];then
    13.  echo "DISK:${DISK}      TIME:`date +%Y%m%d%H%M`  \
    14.  RATE:${rateAlarm}      THRESHOLD:${rateGEUtil}" >> ${outAlertFile}.tmp
    15.  Alert="YES"
    16.  fi
    17.  done
    18.  if [ $Alert= "YES" ];then
    19.  cat ${outAlertFile}.tmp >> ${outAlertFile}
    20.  mail -s "DISK IO Alert"  root@localhost< ${outAlertFile}.tmp
    21.  fi

    最后,脚本将分析活动归档,便于下次分析时定位起始行;另外,分析过程中产生的文件将被删除。

    清单 10. IOAnalyzer.sh 记录分析活动日志和清除临时文件

    01. #----------------------------------------------------------------
    02.  # Clearup temporary files and logging
    03.  # ----------------------------------------------------------------
    04.  
    05. echo "IOSTATFILE:${inIostatFile}        TIME:`date +%Y%m%d%H%M`  \
    06.  STARTLINE:${StartLineNum}       ENDLINE:${EndLineNum}   ALERT:${Alert}" \
    07.  
    08. >> ${outLogFile}
    09.  
    10. rm -f ${outLogFile}.tmp
    11.  rm -f ${outAlertFile}.tmp
    12.  rm -f ${inIostatFile}.tail
    13.  
    14. exit 0

    脚本使用示例

    以下为 IOAnalyzer.sh 脚本在 AIX 上使用示例

    1 .后台执行 iostat, 并将输出重定向到文件中

    清单 11. 后台执行 iostat

    # nohup iostat -d 5 > /root/iostat.out &
    (对于 Linux,运行 iostat -d – x 5 > /root/iostat.out &)

    2 .编辑 crontab 文件,每 10 分钟运行一次 IOAnalyzer.sh 脚本,-u 70 –r 80,表示在距上次运行 IOAnalyzer.sh 至今产生的某磁盘的监控记录中的 80% 使用率达到或超过 70%,即发出告警。告警日志和分析日志可通过 IOAnalyzer.sh 的 –l –a 参数指定,本例保持默认值,即在 iostat 的输出文件所在目录产生 iostat.out.log 和 iostat.out.alert 文件。

    清单 12. 编辑 crontab

    # crontab – e
    0,10,20,30,40,50 * * * * /root/IOAnalyzer.sh -i /root /iostat.out -u 70 \
    -r 80>/tmp/iostat.out 2>&1

    3 .用户收到告警邮件,需要进一步查询历史记录时,可查看日志文件

    清单 13. 查看日志文件

    # cat /root/iostat.out.log | more
    IOSTATFILE: /root/iostat.out TIME:200905200255 STARTLINE:7220 ENDLINE:7580  ALARM:YES
    IOSTATFILE: /root/iostat.out  TIME:200905200300  STARTLINE:7581 ENDLINE:7940 ALARM:YES
    IOSTATFILE:/root/iostat.out TIME:200905200305  STARTLINE:7941 ENDLINE:8300 ALARM:YES

    [AIXn01]> cat /root/iostat.out.alert | more
    DISK:hdisk4     TIME:200905200250         RATE:84      THRESHOLD:70
    DISK:hdisk5     TIME:200905200250         RATE:84      THRESHOLD:70
    DISK:hdisk6     TIME:200905200250         RATE:84      THRESHOLD:70


    <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
    阅读(141) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~
    评论热议
    展开全文
  • linux系统监控命令

    千次阅读 2014-05-04 15:54:38
    linux系统监控命令 top Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。  这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲...

    linux系统监控命令

    top

    Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。 
    这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲区使用大小,进程PID、所使用命令以及其他。它还可以显示正在运行进程的内存和CPU占用多的情况。

    [iteqa@xxx.com logs]$ top
    
    op - 14:31:17 up 183 days, 21:41,  2 users,  load average: 0.24, 0.11, 0.10
    Tasks: 357 total,   1 running, 350 sleeping,   0 stopped,   6 zombie
    Cpu(s):  0.5% us,  0.5% sy,  0.0% ni, 98.9% id,  0.0% wa,  0.0% hi,  0.0% si
    Mem:  65944836k total, 64843976k used,  1100860k free,   525120k buffers
    Swap:        0k total,        0k used,        0k free, 26752252k cached 
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND       
     4531 root      20   0  616m  21m 2484 S  1.0  0.0   2724:02 noah-agent64     
     9025 shenyanc  20   0 16.1g 588m 8616 S  1.0  0.9  95:30.16 java           
    10591 root      20   0 99912 5556 2204 S  1.0  0.0 361:30.39 ssl-waf_checkPr 
     5449 shenyanc  20   0  619m  44m 7028 S  0.7  0.1   4:20.57 node           
    27597 iteqa     20   0  6480 1216  756 R  0.7  0.0   0:00.34 top         
     3054 iteqa     20   0 2603m 1.0g 8216 S  0.3  1.6  24:27.84 java        
     3260 shenyanc  20   0 1085m 423m  16m S  0.3  0.7   1:13.23 java    
     4796 iteqa     20   0 2655m 1.5g 9872 S  0.3  2.4  26:24.27 java       
    ...
    

    按Shift + O,可以选择需要的列进行排序。
    按 c, 显示进程的绝对路径。 
    按 d, 可以修改top命令刷新的时间间隔。 
    按 k, 可以在不退出命令的前提下,杀掉进程。 
    按 q, 退出该命令。

    ps

    PS是LINUX下查看当前进程的命令.

    ps aux 是用BSD的格式来显示 java这个进程 
    显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND

    ps -ef 是用标准的格式显示java这个进程 
    显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD

    [iteqa@xxx.com logs]$ ps aux
    USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0  4828  560 ?        Ss    2013   4:48 init [3] 
    root         2  0.0  0.0     0    0 ?        S     2013   0:00 [kthreadd]
    ...
    root         9  0.0  0.0     0    0 ?        S     2013   0:51 [ksoftirqd/1]
    iteqa    31038 31036  0  2013 ?        00:00:00 ./httpd -k start
    iteqa    31557 31036  0 Feb24 ?        00:00:00 ./httpd -k start
    11242    31757     1  0 Apr21 ?        00:01:00 ./memcached -d -c 10240 -m 1024 -u 
    ...
    

    vmstat

    VmStat 命令用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 块、中断、CPU 活动 等的统计信息。如果 vmstat 命令不可用,需要安装 sysstat 软件包。

    [iteqa@xxx.com logs]$ vmstat
    procs -----------memory----------    ---swap--  -----io----  --system--   ----cpu----
     r  b   swpd   free   buff  cache     si   so    bi     bo    in   cs     us sy id wa
     2  0      0 952232 525476 26063752    0    0     0     7     0     0     1  1 98  0
    

    r 表示运行队列(就是说多少个进程真的分配到CPU)。当这个值超过了CPU数目,就会出现CPU瓶颈了。

    b 表示阻塞的进程。

    swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了

    free 空闲的物理内存的大小。

    buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存

    cache cache直接用来记忆我们打开的文件,给文件做缓冲.

    si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

    so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

    bi 每秒从块设备接收到的块数,即读块设备

    bo 每秒发送到块设备的块数,即写块设备。

    in 每秒CPU的中断次数,包括时间中断

    cs 每秒上下文切换次数。

    us 用户CPU时间。

    sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

    id 空闲 CPU时间

    wa 等待IO CPU时间。

    vmstat 2 6 # 每隔2s执行1次vmstat,执行6次
    
    vmstat -s  #显示内存相关统计信息及多种系统活动数量
    
    vmstat -d  #显示磁盘相关统计信息
    

    iostat

    iostat,用于报告CPU统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息。

    [iteqa@xxx.com logs]$ iostat
    Linux 2.6.32_1-12-0-0 (xxx.com)  05/04/2014      _x86_64_   (12 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               1.45    0.03    0.63    0.01    0.00   97.88
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda               2.82         7.54       159.15  119839988 2529173336
    

    avg-cpu段:

    %user: 在用户级别运行所使用的CPU的百分比.   
    %nice: nice操作所使用的CPU的百分比.   
    %sys: 在系统级别(kernel)运行所使用CPU的百分比.   
    %iowait: CPU等待硬件I/O时,所占用CPU百分比.   
    %idle: CPU空闲时间的百分比.   
    

    Device段:

    tps: 每秒钟发送到的I/O请求数.   
    Blk_read /s: 每秒读取的block数.   
    Blk_wrtn/s: 每秒写入的block数.   
    Blk_read:   读入的block总数.   
    Blk_wrtn:  写入的block总数.   
    

    实例:

    iostat -c #显示CPU信息
    iostat -d #显示硬盘的io
    iostat -x #显示扩展信息
    iostat -p sda 2 6 #每隔2秒显示一次sda及上面所有分区的统计信息,共输出6次
    

    netstat

    netstat是一个用于监控进出网络的包和网络接口统计的命令行工具。 
    -a (all)显示所有选项,默认不显示LISTEN相关 
    -t (tcp)仅显示tcp相关选项 
    -u (udp)仅显示udp相关选项 
    -n 拒绝显示别名,能显示数字的全部转化成数字 
    -l 仅列出有在 Listen (监听) 的服務状态

    -p 显示建立相关链接的程序名 
    -r 显示路由信息,路由表 
    -e 显示扩展信息,例如uid等 
    -s 按各个协议进行统计 
    -c 每隔一个固定时间,执行该netstat命令

    [iteqa@xxx.com logs]$  netstat -tlnp|grep 8814 
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    tcp        0      0 0.0.0.0:8814                0.0.0.0:*                   LISTEN      22751/java 
    

    netstat -at #只监控tcp 
    netstat -au #只监控udp 
    netstat -lu #显示所有被Listen的udp端口 
    netstat -st #显示tcp端口统计信息 
    netstat -p #可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中

    df

    df命令可显示所有文件系统对i节点和磁盘块的使用情况。 
    该命令各个选项的含义: 
    -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统 
    -k 以k字节为单位显示。-i 显示i节点信息,而不是磁盘块 
    -t 显示各指定类型的文件系统的磁盘空间使用情况 
    -x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反) 
    -T 显示文件系统类型

    [iteqa@xxx.com logs]$ df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/sda2              8513656   5281072   3232584  63% /
    /dev/sda3            1406859160 140034428 1266824732  10% /home
    ocean_netdisk_mfs0:9421
                         316731209024 93028134336 223703074688  30% /mfs_netdisk_2
    /home/tmp            1406859160 140034428 1266824732  10% /tmp
    展开全文
  • Linux磁盘监控工具说明

    千次阅读 2018-07-11 22:01:27
    说明一下,其实这些工具都是全能选手,cpu,内存,磁盘空间,网络流量都可以监控,不仅仅是用来监控磁盘IOPS的。   2.1 nmon Linux下安装: [root@iZ28jwgor8mZ ~]# wget ...

    一、系统自带

     

     

     

    1.1 iostat

    系统systat包里的工具,以kB/s为单位统计,2表示以2秒为频率统计一次:
    iostat –x –k 2 10000

     

     

     

    rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
    rsec/s:每秒读取的扇区数;
    wsec/:每秒写入的扇区数。
    rKB/s:The number of read requests that were issued to the device per second;
    wKB/s:The number of write requests that were issued to the device per second;
    avgrq-sz 平均请求扇区的大小
    avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。    
    await:  每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
    svctm    表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢。
    %util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

     

    1.2 iotop

    需单独安装 yum install iotop
    用法:iotop -d 1 -o

     

     

    -o:只显示有io操作的进程 
    -b:批量显示,无交互,主要用作记录到文件。 
    -n NUM:显示NUM次,主要用于非交互式模式。 
    -d SEC:间隔SEC秒显示一次。 
    -p PID:监控的进程pid。 
    -u USER:监控的进程用户。

    常用快捷键:

    1 左右箭头:改变排序方式,默认是按IO排序。 
    2 r:改变排序顺序。 
    3 o:只显示有IO输出的进程。 
    4 p:进程/线程的显示方式的切换。 
    5 a:显示累积使用量。 
    6 q:退出。

     

    1.3 sar 

    sar –p –d 2 1000

     

     

    说明:
    tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。
    rtps: 每秒向磁盘设备的读请求次数
    wtps: 每秒向磁盘设备的写请求次数
    bread: 每秒从磁盘读的bytes数量
    bwrtn: 每秒向磁盘写的bytes数量
    或者用:sar –b 2 1000

    或者用:sar –b 2 1000

     

     

    1.4 dstat

    dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新,譬如输入dstat 3即每三秒收集一次,但最新的数据都会每秒刷新显示。和sysstat相同的是,dstat也可以收集指定的性能资源,譬如dstat -c即显示CPU的使用情况。


    常用选项

    -c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。 
    -C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息。 
    -d:显示磁盘读写数据大小。 
    -D hda,total:include hda and total。 
    -n:显示网络状态。 
    -N eth1,total:有多块网卡时,指定要显示的网卡。 
    -l:显示系统负载情况。 
    -m:显示内存使用情况。 
    -g:显示页面使用情况。 
    -p:显示进程状态。 
    -s:显示交换分区使用情况。 
    -S:类似D/N。 
    -r:I/O请求情况。 
    -y:系统状态。 
    --ipc:显示ipc消息队列,信号等信息。 
    --socket:用来显示tcp udp端口状态。 
    -a:此为默认选项,等同于-cdngy。 
    -v:等同于 -pmgdsc -D total。 
    --output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中。

     

     

     

    二、监控工具

     

     

    说明一下,其实这些工具都是全能选手,cpu,内存,磁盘空间,网络流量都可以监控,不仅仅是用来监控磁盘IOPS的。

     

    2.1 nmon

    Linux下安装:

    [root@iZ28jwgor8mZ ~]# wget http://sourceforge.net/projects/nmon/files/download/nmon_x86_12a.zip/download
    [root@iZ28jwgor8mZ ~]# unzip download
    Archive:  download
      inflating: nmon_x86_rhel45         
      inflating: nmon_x86_rhel52         
      inflating: nmon_x86_sles9          
      inflating: nmon_x86_sles10         
      inflating: nmon_x86_ubuntu810      
      inflating: nmon_x86_fedora10       
      inflating: nmon_x86_opensuse10
    [root@iZ28jwgor8mZ ~]# yum install ld-linux.so.2; yum install libncurses.so.5
    [root@iZ28jwgor8mZ ~]# chmod +x nmon_x86_rhel52
    [root@iZ28jwgor8mZ ~]# mv nmon_x86_rhel52 /usr/local/bin/nmon
    #在后台自动以10秒为单位采集60次的样,即10分钟
    [root@iZ28jwgor8mZ ~]# nmon -s10 -c60 -f -m ./
    #检查后台进程
    [root@iZ28jwgor8mZ ~]# ps -ef|grep -i nmon
    root     16872     1  0 13:32 pts/0    00:00:00 nmon -s10 -c60 -f -m ./

    分析工具:nmon_analyser
    参考:
    Nmon说明:
    http://www.ibm.com/developerworks/cn/aix/library/analyze_aix/index.html
    nmon_analyser的说明:
    http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/index.html
    分析也比较较单,启用excel的宏,打开一个生成的nmon文件即可:
     

     

    2.2 zabbix

    Zabbix现在用的比较多了,其配置IOPS监控的模板有现成的,直接导入即可,出图效果如下:
     

     

    2.3 cacti

    这里不是介绍cacti,cacti作为一个老牌工具,部署文档网上比较成熟了。其IOPS模板下载地址:
    http://forums.cacti.net/about8777.html
    安装步骤参见:
    1.  Unzip Cacti_Net-SNMP_DevIO_v3.1.zip (5 Files) 
    2. Copy net-snmp_devio.xml to <path_cacti>/resource/snmp_queries/net-snmp_devio.xml 
    3. Import all *_TMPL.xml files via Cacti "Import Templates" interface- These templates should include all their dependancies 
    4. Import the net-snmp_devIO-Data_query.xml file LAST 
    5. Add "ucd/net - Get Device I/O" Data Query to your SNMP Enabled host using the "Index Count Changed" Re-index Method. 
    6. Create Graphs for your desired Disk and/or Memory devices. 
    完成后:

    展开全文
  • linux服务器监控命令

    2019-03-24 00:39:36
    Linux下的函数手册命令,可以查看所有命令的使用方法 top -h : 帮助 -p : 监控指定的进程。当监控多个进程时,进程ID以逗号分隔。这个选项只能在命令行下使用 说明:在单核cpu中 load average的值为1时表示满负荷...
  • Unix/Linux 磁盘 I/O 性能监控命令iostat

    千次阅读 2012-10-06 11:59:22
    在介绍磁盘 I/O 监控命令前,咱们需要相识磁盘 I/O 性能监控的指标,以及每个指标的所展现的磁盘某方面的性能。磁盘 I/O 性能监控的指标主要包括:  指标 1:每秒 I/O 数(IOPS 或 tps)  对于磁盘来讲,一...
  • linux系统监控命令汇总

    万次阅读 多人点赞 2018-03-01 14:44:06
    零、Linux系统监控命令速查手册命令功能应用用法举例 free查看内存使用情况,包括物理内存和虚拟内存free -h或free -m vmstat对系统的整体情况进行统计,包括内核进程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息...
  • linux 磁盘性能监控

    千次阅读 2015-06-24 09:40:47
    下面列举一些磁盘监控命令,此处只是起到抛砖引玉作用,详细使用参数请参考man手册。 一 df df命令可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况...
  • 常用linux系统监控命令

    千次阅读 2015-08-23 23:36:11
    一、内存监控监控内存的使用状态是非常重要的,通过监控有助于了解内存的使用状态,比如内存占用是否正常,内存是否紧缺等等,监控内存最常使用的命令有free、vmstat、top等1. free$ free结果如下:第一行(Mem): ...
  • linux 系统监控命令

    万次阅读 2014-03-28 21:50:52
    linux系统监控有以下命令: uptime:显示系统负载情况 mpstat:显示 CPU 性能 free:显示内存使用情况 vmstat:显示虚拟内存使用情况 iostat:显示系统 I/O 活动 netstat:显示网络的活动 df/du...
  • 方法一:top 命令 #top top-15:12:56up64days,21:18,1user,loadaverage:3.88,7.20,8.13 Tasks:526total,1running,525sleeping,0stopped,0zombie %Cpu(s):25.4us,0.5sy,0....
  • 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。 有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一...
  • #!/bin/bash ######################## # date=2019/4/24 # # version=1.0 # # author=changzhenxi # ######################## #定义日志目...
  • linux 性能监控命令7——sar 命令

    千次阅读 2012-12-03 16:35:53
    sar(System Activity Reporter系统活动情况报告)是目前Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用...
  • 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个...
  • 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个...
  • Linux 服务器监控命令

    千次阅读 2014-06-05 21:36:48
    介绍几个linux调测工具 1) top 这个工具要熟练使用, 资料很多不介绍了  常用键要会用会提供更多便利: t :显示摘要信息开关. m :显示内存信息开关. A :分类显示系统不同资源的使用大户。有助于快速识别系统中...
  • 更多Linux请访问 www.itkc8.com 不知道是不是之前用了配置高的VPS主机,还是新搬进的阿里云香港VPS主机的性能有问题,总之,每到晚上挖站否的主机就出现了不稳定的情况,系统负载忽高忽低。利用服务器日志分析...
  • Linux监控磁盘I/O的命令

    千次阅读 2019-03-01 20:42:03
    命令用于监控CPU占用率、平均负载值及I/O读写速度等。 该命令输出的每个字段都非常有用:r/s和w/s指的是IOPS;rkB/s和wkB/s指的是每秒的数据存取速度;await指的是平均等待时间,一般都在10ms左右。 另外,iotop...
  • 16个Linux服务器监控命令

    千次阅读 2015-12-15 14:07:04
    在不同的Linux发行版中,会有不同的GUI程序可以显示各种系统信息,比如SUSE Linux发行版中,就有非常棒的图形化的配置和管理工具YaST,KDE桌面环境里的KDE System Guard也很不错。  然而,对于一名Linux系统管理...
  • 因为要写一个磁盘监控程序可以随时的获取到服务器的磁盘空间的占用情况,所以需要连接到服务器上面,第一次接触,所以在网上查找了方法并记个笔记如下: 1.添加依赖jsch  这个是连接到服务器的一个框架,我用的这...
  • <!-- .p {text-indent:2em} --> ...公司的项目终于进入验收阶段...如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。 有些 Linu
  • 非常有用的15个Linux 服务器监控命令

    万次阅读 2014-04-09 14:22:08
    如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。 有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,420
精华内容 26,168
关键字:

linux磁盘监控命令

linux 订阅