发布于2026-07-28 阅读(0)
扫一扫,手机访问
ThinkPHP项目在CentOS上跑性能测试,这事儿说难不难,但真要做对,得有个清晰的方法论。下面这套流程,是从实际项目中摸爬滚打总结出来的,覆盖了从准备、测试到分析优化的一整套动作。
准备工作做不好,测出来的数据就是瞎扯。以下三点,一个都不能少。
ab(ApacheBench,轻量级基准测试)、stress(系统资源压力测试);top/vmstat/iostat(Linux自带,监控资源占用)、Prometheus+Grafana(实时监控系统指标)、New Relic/Datadog(第三方应用性能监控)。适合简单HTTP请求的性能测试,命令行嗖一下就能拿到响应时间、吞吐量。基本命令长这样:

ab -n 1000 -c 100 http://your-centos-server/index.php/Index/index
参数说明:
-n 1000:总请求数,模拟1000次请求;-c 100:并发用户数,同时有100个请求;http://your-centos-server/index.php/Index/index:你的ThinkPHP测试接口,记得替换成实际URL。结果里重点关注这几个指标:Requests per second(每秒处理请求数,也就是吞吐量)、Time per request(平均响应时间)、Failed requests(失败请求数)。
如果需要模拟用户登录、表单提交、数据库交互这些复杂场景,JMeter是首选。它还能生成漂亮的报告。基本步骤:
bin目录,运行jmeter启动图形界面;Test Plan → Add → Threads (Users) → Thread Group,设置线程数(并发用户)、Ramp-Up Period(启动时间)、循环次数;Thread Group → Add → Sampler → HTTP Request,填写服务器名称、端口、路径(比如/index.php/Index/index);Thread Group → Add → Listener → View Results Tree(看详细请求)、Summary Report(汇总报告);Start按钮,坐等结果。想看看ThinkPHP在高负载系统环境下稳不稳?用stress压CPU、内存、磁盘I/O就对了。基本命令:
stress --cpu 4;stress --vm 2 --vm-bytes 128M;stress --io 4;stress --net 2。按Ctrl+C就能停掉。
测试跑起来之后,得盯着系统看,不然不知道瓶颈在哪。
系统资源监控 —— 用Linux自带命令实时监控:
top:看CPU和内存占用,按P键按CPU排序,按M键按内存排序;vmstat 1:每秒刷新一次,看系统整体状态(CPU、内存、I/O、进程等);iostat -x 1:看磁盘I/O细节,%util超过70%就得警惕了;sar -n DEV 1:看网络流量,rxkB/s是接收速率,txkB/s是发送速率。应用性能监控 —— 不光看系统,还得看应用本身:
config/app.php中app_debug = true),就能看到SQL执行时间、缓存命中率、请求耗时;找到瓶颈了,就得动手优化。从三个层面入手:
代码层面:
SELECT *、减少JOIN操作,用EXPLAIN分析执行计划。服务器层面:
config/app.php中gzip = true),减少传输数据量;Expires、Cache-Control),让浏览器缓存静态资源;数据库层面:
user_id、order_id;db_pool配置),减少连接创建和销毁的开销。按这套流程走一遍,ThinkPHP项目在CentOS上的性能表现就能摸得清清楚楚,该优化的地方一个都跑不掉。高负载下稳不稳、响应快不快,心里就有底了。