个人技术分享

在做 CPU 问题解析之前,需要先了解一下压力模拟工具,可以将 CPU、MEM、IO 等进行压力模拟,可以在模拟压力的过程中进行问题解析

一、STRESS

模拟对CPU、Memory、IO、磁盘进行压力测试。可以使用 stress 工具,它是专门针对 linux 的压力模拟测试工具

stress 安装

使用yum进行安装
sudo yum install stress

如下图所示代表我已经安装完成

查看 stress 指令使用

CPU 模拟压力测试

模拟测试前 cpu 较低且负载也基本为零,如图所示

模拟开启 2 个CPU进程执行 sqrt 计算,40 秒后结束:stress --cpu 2 --timeout 40

CPU 使用高达 99.2% ,负载上升至 0.72、0.16、0.05,进程中主要存在两个 stress ,符合指令中开启 2 个

MEM 模拟压力测试

开启 2 个进程分配内存,每次分配 500M 内存,Hang 住 60 秒后释放,60 秒后结束

stress --vm 2 --vm-bytes 500M --vm-hang 60 --timeout 60

内存使用上升至 1231.3M , 同时可以使用指令 vmstat 指令查看内存变化

IO 压力模拟测试

模拟压力测试之前,资源使用如下图所示

开启 2 个 IO 进程,执行 sync 系统调用,刷新内存缓冲区到磁盘,60 秒后结束
stress --io 2 --timeout 60s
使用 mpstat -P ALL 1 100 指令查看对应的监控数据

磁盘 IO 压力模拟测试

启动 2 个磁盘 IO 进程,每次写 10GB 数据到磁盘
stress --hdd 2 --hdd-bytes 10G --backoff 2000000

使用指令 iostat -d -x 1 进行资源监控

二、写在做后

在做硬件资源分析时,需要在问题出现的时候才能进行系统性分析,因此,我们需要使用工具模拟一定压力才能更好的分析资源使用

以上,本文完,如果觉着有用,麻烦动动小手点个"赞👍+转发呗"。


作者简介:

山茶,一个做了 6 年性能测试,并坚持探索测试之路的测试开发工程师。曾混迹于互联网大厂、IOTA行业领航企业、安全行业、大数据行业领航企业,欢迎和我一起沟通交流。