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

只看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\n” <pid> 确定线程十六进制值
4、jstack <pid> | grep <线程十六进制值> 确定瓶颈代码
注:当然也可以选用strace、perf这类linux的性能分析工具。还有类似arthas这类二次封装的工具。
等待输入输出的CPU时间
wa指标升高时,需要关注分析判断系统是否在做IO操作,是否有IO瓶颈。
io情况查询命令:iostat
扫一扫,关注我
性能测试-CPU瓶颈分析的思路的更多相关文章
- CPU瓶颈分析工具
性能指标: 一.CPU利用率. 1.用户CPU使用率:用户态CPU使用率(user)和低优先级用户态CPU使用率(nice). 2.系统CPU使用率:说明内核比较忙. 3.等待I/O的CPU使用率(i ...
- linux系统瓶颈分析(精) CPU Memory IO Network
linux系统瓶颈分析(精) linux系统瓶颈分析(精) (2013-09-17 14:22:00) 分类: linux服务器瓶颈分析 1.0 性能监控介绍性能优化就是找到系统处理中的瓶颈以及去 ...
- Linux vmstat命令--监控CPU 性能分析
top是给Linux设计的.在FreeBSD VM里面的Free概念和其他OS完全不同,使用top查看Free内存对于FreeBSD来说可以说没什么意义.正确的方法是看vmstat. vmstat是V ...
- Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)
补遗 关于网络接收的软中断负载均衡,已经有了成熟的方案,可是该方案并不特别适合数据包转发,它对server的小包处理非常好.这就是RPS.我针对RPS做了一个patch.提升了其转发效率. 下面是我转 ...
- Linux转发性能评估与优化(转发瓶颈分析与解决方式)
线速问题 非常多人对这个线速概念存在误解. 觉得所谓线速能力就是路由器/交换机就像一根网线一样. 而这,是不可能的.应该考虑到的一个概念就是延迟. 数据包进入路由器或者交换机,存在一个核心延迟操作,这 ...
- [转]检测SQLSERVER数据库CPU瓶颈及内存瓶颈
在任务管理器中看到sql server 2000进程的内存占用,而在sql server 2005中,不能在任务管理器中查看sql server 2005进程的内存占用,要用 以下语句查看sql se ...
- VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试
现在便宜的VPS主机越来越多了,一些美国的VPS主机甚至给出1美元一月的VPS,堪比虚拟主机还要便宜,巨大的价格优势吸引不少人购买和使用,而近些年来国内的主机商也开始意识到便宜的VPS对草根站长的诱惑 ...
- SQL Server数据库性能优化(三)之 硬件瓶颈分析
参考文献 http://isky000.com/database/mysql-performance-tuning-hardware 由于对DBA 工作了解不多 所以只从网上简单的看了下 硬件 ...
- Memcached缓存瓶颈分析
Memcached缓存瓶颈分析 获取Memcached的统计信息 Shell: # echo "stats" | nc 127.0.0.1 11211 PHP: $mc = new ...
随机推荐
- leetcode刷题-78子集
题目 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3]输出:[ [3], [1], [2] ...
- 第一次编程作业(My Own Score)
博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE ...
- js之按钮切换
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Angular用户输入
用户输入 事件绑定 使用 (event) on-event 概念 用户操作 -> DOM事件 用户操作 点击链接 按下按钮 输入文字 DOM事件 $event 类型 any 不能推测属性 可 ...
- NoSuchMethodError: org.springframework.beans.factory.config.BeanDefinition.getResolvableType
spring整合Mybatis报错: 解决方法: 检查maven依赖中的spring-jdbc和spring-webmvc是否版本一致 以下均为5.2.0.RELEASE版本 除此之外再检查是否有其他 ...
- C语言知识点汇集
int main() {// int num; int value; = int num,value; '''同时定义多个变量的方法 但是切记只能是同种类型的''' 都是int 或double等其他类 ...
- docker自己部署一个项目
老祖宗的话说得好呀:实践出真知 自己打个简单的镜像运行 遇到了一堆破问题 学习docker主要在菜鸟教程 https://www.runoob.com/docker/docker-containe ...
- 3.GoolgeProtoBuffer序列化反序列化
- linux学习(九)Linux知识点汇总
一.基础概念 Q:linux是什么? Linux是一种基于UNIX的操作系统,它基于Linux内核,常被用作服务器的操作系统. Q:UNIX和LINUX有什么区别? Unix:收费的,商用的,拥有许 ...
- Ajax一目了然
1.ajax的概念 局部刷新技术.不是一门新技术,是多种技术的组合.是浏览器端的技术. 2.ajax的作用. 实现在当前结果页面中显示其他请求的响应内容 3.ajax的使用 ajax的基本流程 //创 ...
