Linux下测试CPU性能
一、安装stress服务
1、下载stress_1.0.1.orig.tar.gz安装包
2、解压tar xvf stress_1.0.1.orig.tar.gz
3、进入解压目录执行./configure
4、make
5、make check
6、make install
7、make clean
二、安装sysstat服务
1、下载sysstat-11.5.6.tar.gz安装包
2、解压tar xvf sysstat-11.5.6.tar.gz
3、进入解压目录执行./configure
4、make & make install
三、测试CPU密集型进程
1、在第一个终端输入以下命令:stress --cpu 1 --timeout 600
2、在第二个终端输入watch -d uptime实时查看平均负载的变化情况:
3、在第三个终端运行mpstat查看CPU使用率的变化情况:
在第二个终端可以看到,1分钟的平均负载会慢慢增加到1.00,而从第三个终端可以看到正好有一个CPU的使用率为100%,但是它的iowait只有0。说明平均负载的升高正是由于CPU使用率为100%。
4、使用pidstat查看是哪个进程导致CPU使用率为100%
可以看到,PID为3938的stress进程导致CPU使用率为100%。
四、模拟大量进程
1、在第一个终端输入以下命令:stress -c 16 --timeout 600
2、在第二个终端输入watch -d uptime实时查看平均负载的变化情况:
由于系统只有4个CPU,明显比16个进程要少,因而系统的CPU处于严重过载的状态,平均负载高达16.05
3、接着再运行pidstat看下进程的情况:
可以看出,16个进程在争抢4个CPU,每个进程等待CPU的时间(上面的%wait列)高达70%多。超出CPU计算能力,最终导致CPU过载。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库