Linux性能优化(十三)——CPU性能测试
一、CPU上下文切换测试场景
使用sysbench模拟多线程调度:
sysbench --threads=10 --time=300 threads run
使用vmstat查看CPU上下文切换:
cs列上下文切换次数超过150万次。
r列就绪队列长度最大达到8,超过系统CPU的个数4,存在大量的CPU竞争。
sy列超过70%,说明CPU主要是被内核占用。
in列中断次数上升到40000以上,说明中断处理也是个潜在的问题。
系统就绪队列过长,即正在运行和等待CPU的进程数过多,导致大量的上下文切换,而上下文切换又导致了系统 CPU 的占用率升高。
使用pidstat -wt 3查看具体线程:
sysbench线程的cswch超过40000,nvcswch超过100000。
观察CPU的中断使用情况:
watch -d cat /proc/interrupts
重调度中断(RES)超过400万次,用于唤醒空闲状态的CPU来调度新的任务运行。多处理器系统(SMP)中,处理器间中断(Inter-Processor Interrupts,IPI)用来分散任务到不同CPU的机制。
二、CPU平均负载测试场景
1、CPU密集型进程
第一个终端运行stress命令,模拟一个CPU使用率100%的场景。
stress --cpu 1 --timeout 600
在第二个终端运行uptime查看平均负载的变化情况。
watch -d uptime
在第三个终端运行mpstat查看CPU使用率的变化情况。
mpstat -P ALL 5
监控所有CPU,每隔5秒输出一次。
第二个终端uptime监控的1分钟的平均负载会缓慢增加到1.21。
第三个终端中CPU3的使用率为96%,但相应iowait只有0,平均负载的升高是由于CPU使用率为100%。
第四个终端运行pidstat查看进程的CPU使用率,发现stress进程的CPU使用率为100%。
pidstat -u 5 1
2、IO密集型进程
第一个终端运行stress命令,模拟一个IO密集型进程。
stress -i 1 --hdd 1 --timeout 600
第二个终端运行uptime查看平均负载的变化情况。
watch -d uptime
第三个终端运行mpstat查看CPU使用率的变化情况。
mpstat -P ALL 5
第四个终端运行pidstat查看进程的CPU使用率,发现stress进程的CPU使用率相对比较高。
pidstat -u 5 1
3、等待CPU进程
当系统中运行进程超出CPU运行能力时,就会出现等待CPU的进程。
第一个终端运行stress命令,模拟10个进程的场景。
stress -c 10 --timeout 600
由于系统只有4个逻辑CPU,比10个进程要少得多,因而,系统的CPU处于严重过载状态,平均负载高达9.96。
mpstat查看CPU使用率都接近100%。
10个进程争抢4个逻辑CPU,每个进程等待CPU时间(%wait 列)高达60%,严重超出CPU计算能力,最终导致CPU过载。
三、CPU使用率测试场景
1、开启多线程压力测试
sysbench --threads=8 --time=600 cpu run
使用sysbench开启8线程压力测试,持续时间600秒
2、实时分析
sudo perf top -g -p 30388
实时分析sysbench进程30388的性能
选择sysbench,按ENTER键。
选择CPU使用率最大的cpu_execute_eventh函数,按ENTER键进入查看。
选择Annotate cpu_execute_event按ENTER键进入,查看函数内部调用所占CPU。
从cpu_excute_event函数调用看,取模运算占用CPU使用率高达70%以上。
3、离线分析
perf record -g -p 28068
采样sysbench进程性能数据
perf report
解析性能数据
Linux性能优化(十三)——CPU性能测试相关推荐
- Linux性能优化之CPU、内存、IO优化
Linux 的性能进行监测,以下是 VPSee 常用的工具: 工具 简单介绍 top 查看进程活动状态以及一些系统状况 vmstat 查看系统状态.硬件和系统信息等 iostat ...
- 【linux性能优化】CPU使用率过高分析
最常用什么指标来描述系统的 CPU 性能呢? 可能不是平均负载,也不是 CPU上下文切换,而是另一个更直观的指标CPU使用率 CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示 那么,作 ...
- Linux性能优化:CPU篇
本文主要帮助理解 CPU 相关的性能指标,常见的 CPU 性能问题以及解决方案梳理. 系统平均负载 简介 系统平均负载:是处于可运行或不可中断状态的平均进程数. 可运行进程:使用 CPU 或等待使用 ...
- 【linux性能优化】CPU上下文切换
进程在竞争CPU的时候并没有真正运行,为什么还会导致系统的负载升高呢?其实CPU上下文切换就是罪魁祸首 一.上下文切换 Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行.当 ...
- linux 调整 内核空间占用cpu,[Linux性能优化]3.CPU使用率100%,怎么办?
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示. CPU时间是Linux通过事先定义的节拍率(内核中表 ...
- idl linux运行效率,Linux性能优化实战 CPU篇 阅读笔记
第十一讲 如何快速分析出CPU的性能瓶颈(2020.6.3) 这一讲干活真是太多了,将之将使用的各种工具串联起来.其实系统出问题之后第一感觉就是感觉就是系统相应变慢了.我们可以使用<> 里 ...
- Linux性能优化——查找CPU使用率高的进程
1.安装psttree命令 yum -y install psmisc 2.使用top和pidstat # 间隔1秒输出一组数据(按Ctrl+C结束) $ pidstat 1top 3.若发现top无 ...
- Linux性能优化-CPU性能优化思路
目录 CPU性能指标 性能工具 如何迅速的分析CPU性能瓶颈 性能优化方法论 CPU优化 参考 CPU性能指标 CPU使用率 1.CPU使用率描述了非空闲时间占总CPU时间的百分比,根据CPU上运行任 ...
- linux性能优化--cpu篇
linux性能优化--cpu篇 前言 负载 CPU使用率 proc perf 一些链接 `perf list` 比较有用的event `perf stat` `perf record` Profili ...
- 【Linux 性能优化系列】Linux 性能优化 -- CPU 性能篇(三) Linux 软中断
[Linux 性能优化系列]Linux 性能优化 -- CPU 性能篇(三) Linux 软中断 [1]相关概念 [1.1]中断 中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力:为了减少 ...
最新文章
- oracle 里 符号 || 表示什么意思??
- Java finally
- davinci项目服务器无法,集成就能降成本!GS集成DaVinci Resolve项目服务器
- SVN之如何解决从一个svn路径下载项目快速提交到其它svn路径
- SharePoint 2013异常信息的查看
- Java常见排序算法之堆排序
- c++用什么软件_html用什么软件编写
- day03_js学习笔记_03_js的事件、js的BOM、js的DOM
- 3分钟学会python_3分钟学会,学会用Python正确读取大文件
- hihoCoder#1743:K-偏差排列(矩阵快速幂+状压dp)
- cmd看excel有多少个子表_什么win cmd打开特定的电子表格在Excel?
- linux怎么设置raid,如何在Linux中配置RAID-教程
- 为什么你还没有买新能源汽车?
- 消防应急疏散指示系统在学校项目上的应用
- Sam-ba 2.12在win7上的安装
- java中设置基偶隔行换色_隔行变色 - 李俊互联网技术传播者 - 博客园
- 追觅慧目F9、戴森360 Heurist、石头T7三款扫地机器人哪个更好
- 卡西欧计算机使用方法,卡西欧计算器使用教程
- centos7下安装nfs文件服务器 为k8s中使用nfs做准备
- 蓝牙 - 设备类型设置: Class of Device