CentOS服务器性能压测是分层验证、目标明确、全程监控的系统性工作:先测CPU(stress-ng满载)、内存(stress-ng占8GB)、磁盘IO(fio直写裸设备)、网络(iperf3多流测吞吐),再测Web服务(ab/http_load/JMeter),最后结合业务场景加压并分析瓶颈。

CentOS 服务器性能压测不是“跑个工具就完事”,而是分层验证、有目标、有监控的系统性工作。核心思路是:先测底层硬件(CPU/内存/磁盘/网络),再测服务层(如 Apache、Nginx、Java 应用),最后结合真实业务场景施加压力并观察瓶颈。
明确压测目标和分层路径
不要一上来就对 Web 接口狂打。先问清楚:这次压测是为了验证什么?
- 如果是新上线机器,重点看硬件是否达标(比如 CPU 满载时是否稳定、磁盘随机写 IOPS 是否满足预期)
- 如果是上线前验收,需覆盖应用中间件(如 Tomcat 线程池、数据库连接池)和接口 QPS/RT/错误率
- 如果是容量规划,要逐步加压(如从 100 并发→500→1000),记录拐点(响应时间陡升、错误突增、CPU 或 IO 利用率卡在 80%+)
分项执行底层资源压测
使用轻量、可控、结果可比的工具逐项验证:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
-
CPU:用
stress-ng --cpu $(nproc) --timeout 300s满载测试 5 分钟,同时用top -1观察各核负载是否均衡、温度是否异常(需配合sensors) -
内存:用
stress-ng --vm 2 --vm-bytes 4G --timeout 300s占用约 8GB 内存,观察free -h和vmstat 1中 si/so(swap 交换)是否为 0 -
磁盘 IO:用
fio测真实裸设备性能,例如:fio --name=randwrite --ioengine=libaio --iodepth=16 --rw=randwrite --bs=4k --direct=1 --size=2G --runtime=60 --time_based --filename=/dev/sdb1
关注iops和lat (avg),避免只看吞吐量 MB/s -
网络:用
iperf3 -c 10.0.1.100 -t 60 -P 4(两端都装 iperf3),测试多流 TCP 吞吐,确认是否跑满网卡(如千兆卡应接近 940Mbps)
针对 Web 服务做 HTTP 层压测
以 Apache 为例,推荐组合使用:
-
快速摸底:用
ab(yum install -y httpd-tools)ab -n 2000 -c 200 http://localhost/—— 看平均响应时间、失败率、每秒请求数(Requests per second) -
多 URL & 持续压测:用
http_load
先准备urls.txt(每行一个接口),再执行:http_load -parallel 50 -seconds 120 urls.txt -
真实场景模拟:用 JMeter(需 JDK 8+)
编写含登录鉴权、参数化、思考时间、断言的脚本;本地调试通过后,上传到 CentOS 执行:jmeter -n -t login.jmx -l result.jtl -e -o report_dir
全程必须搭配监控与分析
压测不是“发请求 + 看结果”,而是“边压边看”:
- 基础监控:开一个终端持续运行
watch -n 1 'uptime; echo; top -bn1 | head -20' - 关键指标关注点:
•load average> CPU 核数 × 0.7 就需警惕
•%wa(iowait)持续 > 20%,说明磁盘成瓶颈
•free中available值低于总内存 15%,可能触发 OOM - 服务层日志:Apache 的
error_log、应用的 GC 日志、数据库慢查询日志,都要实时翻看


















