CentOS 上监控 Apache 性能的实用方案
一 内置模块与命令行快速查看
启用并查看 Apache 实时状态:在 /etc/httpd/conf/httpd.conf 的
<Location "/server-status">
SetHandler server-status
ExtendedStatus On
Require local
</Location>
重启服务:systemctl restart httpd。访问 http://服务器IP/server-status 或使用命令 apachectl status 查看关键指标:当前请求数、空闲/忙碌 worker、每秒请求数、每秒字节数、服务运行时间、总流量、CPU 使用率 等。若需远程查看,可将 Require local 调整为受控的 IP 白名单。以上信息来自 mod_status 的输出能力及典型配置示例。
实时请求监控与日志分析:
yum install apachetop -y && apachetop,可实时按 URL/来源/状态 观察请求速率与热点。yum install goaccess -y,对访问日志进行交互式分析并生成 HTML 报告,例如:goaccess /var/log/httpd/access_log -o /var/www/html/report.html。awk '{print $4}' /var/log/httpd/access_log | cut -d: -f2 | cut -d. -f1 | sort | uniq -c | sort -nr。top/htop、vmstat、iotop 观察 CPU、内存、I/O 是否成为瓶颈。二 可视化与长期监控平台
三 负载与压力测试配合监控
yum install httpd-tools -y,示例:ab -n 10000 -c 100 http://your-server-ip/,用于评估 并发能力、RPS、时延分布。http_load -parallel 10 -seconds 10 urls.txt,模拟多并发访问。httperf --hog --server=your-server-ip --uri=/ --num-conns=10000 --wsess=10,10,0.1,更贴近真实会话与连接行为。四 关键指标与告警阈值示例
| 指标 | 含义 | 建议动作 |
|---|---|---|
| CPU 使用率 | 服务与系统负载 | 持续高于 80% 时排查热点代码、静态资源压缩、缓存与后端性能 |
| 内存使用率 | 进程与缓存占用 | 高于 80% 时检查 MaxRequestWorkers、连接泄漏、Swap 使用 |
| 当前请求数/忙碌 worker | 并发处理能力 | 长期接近 MaxRequestWorkers 时提升 MPM 参数 或横向扩容 |
| 每秒请求数(RPS) | 吞吐能力 | 与基线对比,若下降检查慢查询/后端/网络 |
| 请求耗时/P95/P99 | 延迟与长尾 | 升高时定位慢接口、数据库慢查询、外部依赖 |
| 5xx/4xx 错误率 | 稳定性与客户端问题 | 上升时联动 error_log、后端健康与限流策略 |
| 带宽 | 网络吞吐 | 接近网卡上限时启用压缩、CDN、静态资源分离 |
| 磁盘 I/O 等待 | 存储瓶颈 | 升高时优化日志级别/轮转、启用缓存、升级存储 |
以上指标中,mod_status 可直接提供 RPS、带宽、当前处理请求数、运行时间、CPU 使用率 等;其余指标可结合 GoAccess/日志分析 与 系统监控 获取。