zoukankan      html  css  js  c++  java
  • Linux系统性能监控

    系统的性能指标主要包括CPU、内存、磁盘I/O、网络几个方面。

    1. CPU性能

    (1)利用vmstat命令监控系统CPU

       该命令可以显示关于系统各种资源之间相关性能的简要信息,这里我们主要用它来看CPU一个负载情况。

       下面是vmstat命令在某个系统的输出结果:

     

    Procs

         r列表示运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU。

         b列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。

    cpu

         us列显示了用户进程消耗的CPU 时间百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法。

         sy列显示了内核进程消耗的CPU时间百分比。sy的值较高时,说明内核消耗的CPU资源很多。

        根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足。

     

    (2)利用sar -u命令监控系统CPU

    通过“sar –u”组合,可以对系统的cpu使用情况做一个基本的统计

     

    输出项说明:

    CPU:all 表示统计信息为所有 CPU 的平均值。

    %user:显示在用户级别(application)运行使用 CPU 总时间的百分比。

    %nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。

    %system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。

    %iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。

    %steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。

    %idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

    1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈

    2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量

    3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

     

    2. 内存性能

    1)利用free指令监控内存

    free是监控linux内存使用状况最常用的指令,看下面的一个输出:

    第一行:

      total 物理内存总数:

      used 已经使用的内存数

      free 空闲的内存数

      shared 当前已经废弃不用,总是0

      buffers 即Buffer Cache内存数

      cached 即Page Cache内存数

      关系:total = used + free

    第二行:

      -/+ buffers/cache的意思相当于:

      -buffers/cache 的内存数:928772 (等于第1行的 used – buffers – cached),实际上是应用程序所使用的内存。

      +buffers/cache 的内存数: 1129628 (等于第1行的 free + buffers + cached),是对应用程序来说还剩余的内存。

    可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

    对操作系统来讲buffers/cached 都是属于被使用,所以它认为free只有220276

    对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。

    第三行是交换分区swap, 列出已使用、空闲的swap.

    2利用vmstat命令监控内存

     

    memory(单位KB)

    swpd列表示切换到内存交换区的内存数量。如果swpd的值不为0,或者比较大,只要si、so的值长期为0,这种情况下一般不用担心,不会影响系统性能。

    free列表示当前空闲的物理内存数量

    buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲。

    cache列表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。

     swap(单位KB/s)

    si列表示由磁盘调入内存,也就是内存进入内存交换区的数量。

    so列表示由内存调入磁盘,也就是内存交换区进入内存的数量。

    一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足。需要增加系统内存。

     

    (3)利用sar -r评估内存性能

    通过“sar –r”组合,可以对系统的内存性能做一个基本的统计

     

    3.磁盘I/O性能 

    (1)利用iostat评估磁盘性能

    对上面每项的输出解释如下:

    Blk_read/s表示每秒读取的数据块数。

    Blk_wrtn/s表示每秒写入的数据块数。

    Blk_read表示读取的所有块数。

    Blk_wrtn表示写入的所有块数。

    可以通过Blk_read/s和Blk_wrtn/s的值对磁盘的读写性能有一个基本的了解,如果Blk_wrtn/s值很大,表示磁盘的写操作很频繁,可以考虑优化磁盘或者优化程序,如果Blk_read/s值很大,表示磁盘直接读取操作很多,可以将读取的数据放入内存中进行操作。对于这两个选项的值没有一个固定的大小,根据系统应用的不同,会有不同的值,但是有一个规则还是可以遵循的:长期的、超大的数据读写,肯定是不正常的,这种情况一定会影响系统性能。

     

    (2)利用sar -d评估磁盘性能

    通过“sar –d”组合,可以对系统的磁盘IO做一个基本的统计

    tps:每秒从物理磁盘I/O的次数,多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的

    rd_sec/s:每秒读扇区的次数

    wr_sec/s:每秒写扇区的次数

    avgrq-sz:平均每次设备I/O操作的数据大小(扇区)

    avgqu-sz:磁盘请求队列的平均长度

    需要关注的几个参数含义:

    await表示平均每次设备I/O操作的等待时间(以毫秒为单位)

    svctm表示平均每次设备I/O操作的服务时间(以毫秒为单位)

    %util表示一秒中有百分之几的时间用于I/O操作

    对以磁盘IO性能,一般有如下评判标准:

         正常情况下svctm应该是小于await值的,而svctm的大小和磁盘性能有关,CPU、内存的负荷也会对svctm值造成影响,过多的请求也会间接的导致svctm值的增加。

         await值的大小一般取决与svctm的值和I/O队列长度以及I/O请求模式,如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。

         %util项的值也是衡量磁盘I/O的一个重要指标,如果%util接近100%,表示磁盘产生的I/O请求太多,I/O系统已经满负荷的在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,可以通过优化程序或者通过更换更高、更快的磁盘来解决此问题。

     

    4. 网络性能

    (1)通过ping命令检测网络的连通性

    (2)通过netstat –i组合检测网络接口状况

     

    (3)通过netstat –r组合检测系统的路由表信息

    (4)通过sar –n组合显示系统的网络运行状态

    sar命令使用-n选项可以汇报网络相关信息,可用的参数包括:DEV、SOCK等。

    使用DEV关键字,那么sar将汇报和网络设备相关的信息,如lo、eth0、eth1等:

     

      IFACE:网络设备的名称;

      rxpck/s:每秒钟接收到的包数目

      txpck/s:每秒钟发送出去的包数目

      rxbyt/s:每秒钟接收到的字节数

      txbyt/s:每秒钟发送出去的字节数

      rxcmp/s:每秒钟接收到的压缩包数目

      txcmp/s:每秒钟发送出去的压缩包数目

      txmcst/s:每秒钟接收到的多播包的包数目

    使用SOCK关键字,则会针对socket连接进行汇报:

      tcpsck:当前正在被使用于TCP的socket数目

      udpsck:当前正在被使用于UDP的socket数目

      rawsck:当前正在被使用于RAW的socket数目

    ip-frag:当前的IP分片的数目

  • 相关阅读:
    io学习
    asp.net文件上传进度条研究
    asp.net页面中的Console.WriteLine结果如何查看
    谨慎跟随初始目的不被关联问题带偏
    android 按钮特效 波纹 Android button effects ripple
    安卓工作室 日志设置
    安卓工作室 文件浏览器 android studio File browser
    一个新的Android Studio 2.3.3可以在稳定的频道中使用。A new Android Studio 2.3.3 is available in the stable channel.
    新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial
    码云,git使用 教程-便签
  • 原文地址:https://www.cnblogs.com/yuyue2014/p/3658337.html
Copyright © 2011-2022 走看看