zoukankan      html  css  js  c++  java
  • 性能测试-CPU瓶颈分析的思路

    CPU(中央处理器),是电子计算机的主要设备之一,电脑中的核心配件。CPU作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU的功效主要为处理指令、执行操作、控制时间、处理数据。

    CPU性能相关指标

    image

    只看us那是不正确,不全面的。已图上top命令为例,需要关注的CPU性能相关指标:

    load average[系统平均负载]
    us[用户空间占用CPU百分比]
    sy[内核空间占用CPU百分比]
    ni[用户进程空间内改变过优先级的进程占用CPU百分比]
    id[空闲CPU百分比]
    wa[等待输入输出的CPU时间百分比]
    hi[硬中断]
    si[软中断]
    

    平均负载

    平均负载最理想的情况是等于CPU个数。

    查询CPU个数命令:lscpu
    

    当平均负载高于 CPU 数量 70% 的时候,你就应该分析排查负载高的问题了。一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常功能。最推荐的方法是持续观察,判断负载的变化趋势,当发现负载有明显升高趋势时,进行分析判断。

    CPU利用率

    在系统CPU分析过程中,(us,sy)当CPU利用率大于50%时,需要注意。当CPU利用率大于70%的时候,需要密切关注。当CPU利用率大约90%,情况就比较严重。当然每种情况下的CPU都有按需分析的可能。

    以Java应用为例定位CPU瓶颈

    1、jps 确定Java进程ID
    2、top -Hp <pid> 确定进程内最耗费CPU的线程
    3、printf “%x
    ” <pid> 确定线程十六进制值
    4、jstack <pid> | grep <线程十六进制值>  确定瓶颈代码
    注:当然也可以选用strace、perf这类linux的性能分析工具。还有类似arthas这类二次封装的工具。
    

    等待输入输出的CPU时间

    wa指标升高时,需要关注分析判断系统是否在做IO操作,是否有IO瓶颈。

    io情况查询命令:iostat
    

    扫一扫,关注我

  • 相关阅读:
    20180929 北京大学 人工智能实践:Tensorflow笔记02
    20180929 北京大学 人工智能实践:Tensorflow笔记01
    YOLOv3学习笔记
    编辑器上传漏洞
    IIS解析漏洞利用
    数据库备份及审查元素进行webshell上传
    burp suite 进行webshell上传
    BUGKU CFT初学之WEB
    CTFbugku--菜鸟初学
    理解PHP中的会话控制
  • 原文地址:https://www.cnblogs.com/hally/p/13829831.html
Copyright © 2011-2022 走看看