apache访问日志通过%d字段批量升高、小字节数200响应、qps突增超maxrequestworkers、特定路径/ip集中请求及error.log中“reached maxrequestworkers”提示等特征,综合判断连接排队。

访问日志本身不直接记录“连接排队”,但高并发下请求在 Apache 前端堆积时,会通过时间戳分布、响应延迟、状态码组合和客户端行为模式留下清晰痕迹。关键不是找某条日志,而是看一批请求的统计特征。
看响应时间(%D)是否批量拉长
Apache 的 Combined Log Format 支持记录请求处理耗时(%D,单位微秒)。启用后,日志中第11字段(或自定义格式中指定位置)即为响应时间:
192.168.1.100 - - [20/Aug/2026:14:05:22 +0800] "GET /api/user HTTP/1.1" 200 1245 "https://site.com/" "Mozilla/5.0" 1824350
当出现连接排队(如 mpm_prefork 进程耗尽、accept 队列满),新请求无法立即被子进程 pickup,会在内核 listen 队列中等待,导致从 TCP 握手完成到 Apache 开始处理之间的时间(即 %D)显著升高——且呈现“成片升高”而非个别抖动:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 用命令提取最近5分钟响应超1秒的请求数:
awk '$12 > 1000000 {print}' access.log | wc -l(假设%D是第12字段) - 对比平时基线:若该数值突增3倍以上,且集中在同一分钟段,极可能已触发排队
- 注意排除后端慢:若大量 200 + 高%D + 大字节数(%B),更倾向后端瓶颈;若 200 + 高%D + 小字节数(如几十~几百字节),则排队可能性更高
查状态码与请求路径的集中性
真实排队常伴随特定路径的请求激增,且状态码未必异常(仍是200),但请求密度远超服务承载能力:
- 统计每秒请求数(QPS)峰值:
awk '{print substr($4,2,15)}' access.log | sort | uniq -c | sort -nr | head -5
输出类似 127 20/Aug/2026:14:05:22 表示该秒有127个请求 - 若单秒QPS超过 MaxRequestWorkers(如配置为256),说明连接已在排队或被拒绝(此时 error.log 可能出现 server reached MaxRequestWorkers setting)
- 结合路径分析:若
awk '$7 ~ /^\/api\// {print $7}' access.log | sort | uniq -c | sort -nr | head -3显示某接口占总请求70%以上,需检查该接口是否被刷或未加限流
观察客户端IP的短时密集行为
排队往往由少数IP突发流量引发(如爬虫、未控SDK、攻击),它们不会报错,但会快速占满工作进程:
- 查最近10分钟访问最频繁的IP:
awk '$4 ~ /\[20\/Aug\/2026:14:[0-5][0-9]/ {print $1}' access.log | sort | uniq -c | sort -nr | head -5 - 若某IP单分钟请求超200次(远高于正常用户行为),且其请求多为200+低字节数+中等%D,基本可判定为排队源头
- 配合 error.log 检查:对应时段是否出现 client denied by server configuration 或 mod_evasive 触发日志,可交叉验证
关联错误日志确认排队是否已溢出
访问日志只反映“表面现象”,必须同步检查 error.log 才能确认排队是否已突破阈值:
- 搜索关键提示:
grep -i "reached.*maxrequestworkers\|scoreboard.*full\|connection reset" /var/log/apache2/error.log - 若出现 server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting,说明请求已被丢弃(非排队,而是直接拒绝),此时 access.log 中可能缺失部分请求记录
- 若 error.log 干净但 access.log 明显延迟,说明排队发生在内核层(listen backlog 满),需调大
net.core.somaxconn并检查后端 accept 能力










