zoukankan      html  css  js  c++  java
  • linux系统性能排查命令

    【top】

        命令可以动态查看当前系统的资源情况,以及占用资源的命令列表

        用法:  

                  - ctrl + c / q : 停止此命令运行

                  - c : 展示完整的命令

                  - 【top -bn1】:可以不动态的展示当前系统的资源情况

                  - 【uptime】:第一行的load average可以通过此命令看到

    $ uptime
    23:51:26 up 21:31,  1 user,  load average: 30.02, 26.43, 19.02
    
    #第一个数值: 代表着1分钟的平均负载
    #第二个数值:代表着5分钟的平均负载
    #第三个数值:代表着15分钟的平均负载
    
    #如果1分钟的平均负载很高,15分钟的很低 ==>系统正在执行高负载命令,大量消耗CPU
    

    【dmesg】 ==> /var/log/dmesg

          命令可以快速查看系统启动过程中的内核日志信息,包括:系统设备信息、启动和操作过程中系统记录的任何错误和问题

          用法:

                - 【dmesg | more】: 打印出来的内容会很多,可以利用more来分页查看

                 - 【dmesg | tail 】: 打印最后十行的日志

    【vmstat 1 5】

           命令输出系统核心指标信息,1 5 表示1秒输出5次信息

           用法:

                  - 【r】: 等待CPU资源的进程数,不包括等待IO的进程{数值如果大于CPU核数,就说明机器的CPU资源已经饱和}

                  - 【free】: 系统可用内存(以K为单位)

                  - 【si,so】:交换区swap写入和读取的数量,如果数值不等于0,那么机器物理内存已经不足

                  - 【us,sy,id,wa,st】:分别表示用户时间(user)、系统(内核)时间(sys)、空闲时间(idle)、IO等待时间(wait)和被偷走的时间(stolen,一般被其他虚拟机消耗)。

                           这里的user + sys 结果特别大 ==》 CPU繁忙于执行命令

                                     wail 很大 ==》 则瓶颈可能在磁盘IO

    【mpstat -P ALL 1】

             命令可显示CPU的个数,以及每一个CPU被占用的状况,

             如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的。

    【pidstat 1】

              输出进程的CPU占用率{会持续输出,并不会覆盖之前的数据}

              从这个命令中可以通过计算某个进程占用CPU的时间来推断占用了多少个CPU资源

    【iostat -zx 1】

               查看机器磁盘IO情况

               用法:

                       - 【r/s, w/s, rkB/s, wkB/s】: 表示每秒读写次数和每秒读写数据量(KB)==》 这个值表示读写量,读写量过大,会引起性能问题

                       - 【await】: IO操作的平均等待时间,{单位:ms},此处代表应用程序和磁盘交互时,需要消耗的时间(包括IO等待和实际操作的耗时),这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障

                       - 【avgqu-sz】: 向设备发出的请求平均量,如果此数值大于1,可能是硬件设备已经饱和(部分前端设备支持并行写入)

                        - 【%util】:设备利用率,这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响IO性能(可以参照IO操作平均等待时间)。如果到达100%,说明硬件设备已经饱和。

                                       如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能。

    【sar -n DEV 1】

                   查看网络设备的吞吐率

                   这里需要了解网络设备的吞吐量上限,从这里可以判断是否网络设备已经饱和,无法承担更大的访问。

    【sar -n TCP,ETCP 1】

                   查看TCP连接状态

                   参数:

                         -   active/s:每秒本地发起的TCP连接数,既通过connect调用创建的TCP连接;
          -   passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接;
          -   retrans/s:每秒TCP重传数量;

             TCP连接数可以用来判断性能问题是否由于建立了过多的连接,进一步可以判断是主动发起的连接,还是被动接受的连接。

        TCP重传可能是因为网络环境恶劣,或者服务器压力过大导致丢包。

  • 相关阅读:
    PostgreSQL 的 pl/pgsql 的 cannot begin/end transactions in PL/pgSQL错误
    PostgreSQL在何处处理 sql查询之五十三
    PostgreSQL在何处处理 sql查询之五十四
    PostgreSQL的CTE
    PostgreSQL在何处处理 sql查询之五十二
    PostgreSQL 语法树分析之前需要了解到知识
    PostgreSQL在何处处理 sql查询之五十一
    PostgreSQL在何处处理 sql查询之五十六
    PostgreSQL在何处处理 sql查询之五十五
    PostgreSQL在何处处理 sql查询之五十七
  • 原文地址:https://www.cnblogs.com/frankielf0921/p/7666893.html
Copyright © 2011-2022 走看看