首页主机资讯centos lnmp性能测试工具

centos lnmp性能测试工具

时间2025-11-24 13:20:04发布访客分类主机资讯浏览760
导读:CentOS LNMP性能测试工具与用法 一、工具分类与适用场景 HTTP压测:ab(ApacheBench)、wrk、Siege、JMeter。适合评估Nginx吞吐、PHP-FPM动态处理能力、接口QPS与延迟分布。 数据库与系统基准...

CentOS LNMP性能测试工具与用法

一、工具分类与适用场景

  • HTTP压测ab(ApacheBench)wrkSiegeJMeter。适合评估Nginx吞吐、PHP-FPM动态处理能力、接口QPS与延迟分布。
  • 数据库与系统基准sysbench(CPU/内存/事务/文件IO/OLTP)、fio(磁盘IO)、netperf(网络带宽/延迟)。用于排除底层资源瓶颈。
  • 应用与代码级分析XdebugBlackfire.io,定位PHP热点函数与调用路径。
  • 运行监控top/htop、vmstat、iostat、ss、dstat、iftop、nmonNginx stub_statusPrometheus + GrafanaZabbixNew Relic/Datadog。用于压测过程中的资源与组件指标观测与告警。

二、快速上手命令示例

  • ab(快速检查QPS与延迟)
    • 安装:sudo yum install -y httpd-tools
    • 示例:ab -n 10000 -c 200 http://your-domain.com/(-n 总请求数,-c 并发数)
  • wrk(高并发、长连接、延迟分布)
    • 安装:git clone https://github.com/wg/wrk.git & & cd wrk & & make & & sudo cp wrk /usr/local/bin/
    • 示例:wrk -t12 -c400 -d30s --latency http://your-domain.com/(12线程、400并发、30秒)
  • Siege(多URL、随机与循环压测)
    • 安装:sudo yum install -y siege
    • 示例:siege -c200 -t60s -b http://your-domain.com/
  • JMeter(图形化/复杂场景)
    • 用法:在GUI中创建测试计划(线程组、HTTP请求、定时器、断言、监听器),导出JMX后在服务器用CLI运行:jmeter -n -t test.jmx -l result.jtl
  • sysbench(数据库/系统基准)
    • CPU:sysbench cpu --threads=8 --time=60 run
    • 内存:sysbench memory --threads=8 --time=60 run
    • 文件IO:sysbench fileio prepare & & sysbench fileio --file-total-size=10G --file-test-mode=rndrw run
    • OLTP(需提前准备库表):sysbench oltp_read_write --db-driver=mysql --mysql-host=127.0.0.1 --mysql-user=root --mysql-password=xxx --tables=10 --table-size=1000000 --threads=8 --time=300 run
  • fio(磁盘IO)
    • 随机读:fio --name=randread --ioengine=libaio --rw=randread --bs=4k --size=1G --numjobs=4 --runtime=60 --time_based --filename=/tmp/fio.log
  • netperf(网络)
    • 安装:sudo yum install -y netperf
    • 示例:netperf -H your_server_ip -t TCP_STREAM

三、压测前后监控要点

  • Nginx:启用ngx_http_stub_status_module,配置示例:
    • location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }
    • 关键指标:Active connections、Reading、Writing、Waiting,观察连接是否触顶。
  • 系统资源
    • top/htop(进程CPU/内存)、vmstat 1(系统负载/内存/IO)、iostat -x 1(磁盘IO等待)、ss -s(连接数)、dstat -ta(综合资源)、iftop(带宽占用)、nmon(资源总览)。
  • MySQL
    • 连接与慢查询:SHOW STATUS LIKE 'Threads_connected'; SHOW STATUS LIKE 'Slow_queries';
    • 实时负载:SELECT COUNT(*) as connections, state FROM information_schema.processlist GROUP BY state;
    • 慢查询分析:pt-query-digest /var/log/mysql/slow.log
  • PHP-FPM:开启pm.status_path,通过HTTP或FastCGI方式抓取active/queued进程与请求耗时。
  • 可视化与告警Prometheus + Grafana采集Nginx/MySQL/PHP-FPM指标并出图;Zabbix配置触发器;New Relic/Datadog做应用性能观测。

四、结果判读与常见瓶颈

  • 吞吐与延迟:关注Requests/secLatency(p50/p95/p99)。若吞吐低且p95/p99高,多为后端处理慢排队;若错误率/超时升高,检查连接数上限超时配置
  • 连接与队列:Nginx 的 worker_connections 与系统 文件描述符 过小会导致连接失败或排队;PHP-FPM 的 pm.max_children 不足会造成请求排队。
  • 数据库Threads_connected 接近上限、慢查询增多,需优化索引/SQL或提升连接上限与缓冲池。
  • 磁盘与网络iostatawait 高说明磁盘慢;iftop 显示带宽打满则网络成为瓶颈。
  • 定位方法:先用系统/组件监控确认瓶颈层,再针对该层调参或改写SQL/缓存/代码路径。

五、测试流程与注意事项

  • 流程:准备接近生产的测试环境数据集 → 明确目标指标(QPS、p95、错误率) → 设计场景(静态资源、动态接口、登录/下单等) → 执行基线压测监控与瓶颈定位调优(Nginx/PHP-FPM/MySQL/系统)→ 回归压测验证收益。
  • 注意事项:避免对生产造成影响(使用隔离环境限流);每次只变更一个变量便于归因;压测时间足够长以覆盖缓存预热与抖动;保留原始日志与报表便于复盘。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos lnmp性能测试工具
本文地址: https://pptw.com/jishu/754391.html
centos cpustat如何报告CPU使用率 centos lamp服务器配置指南

游客 回复需填写必要信息