Hey+cron定时巡检:让在线服务的性能巡逻自动化运行 Heycron定时巡检让在线服务的性能巡逻自动化运行【免费下载链接】heyHTTP load generator, ApacheBench (ab) replacement项目地址: https://gitcode.com/GitHub_Trending/he/heyhey 是一款轻量级HTTP 负载生成器HTTP load generator定位是 ApacheBenchab的替代工具。它用一行命令就能向 Web 服务施压并输出完整的性能统计平均/最快/最慢响应、RPS、DNS 与连接耗时、状态码分布。把它和 Linux 的cron 定时任务组合起来就能实现零成本的性能巡逻定时、定量、自动记录让在线服务的性能劣化在用户抱怨之前就暴露出来。️为什么选 hey 做性能巡检对新手来说hey 的门槛低到几乎没有单二进制、跨平台Linux / macOS / Windows 都有构建产物跨平台构建逻辑见 Makefile容器化部署见 Dockerfile一条命令即出报表默认发送 200 次请求、50 并发默认值定义在 hey.go统计开箱即用平均响应时间、RPS、DNS/连接/请求/响应各阶段耗时、状态码分布统计模型实现在 requester/report.go终端渲染在 requester/print.go能力不缩水支持 POST 等任意方法、自定义 Header、Basic 认证、HTTP/2、QPS 限速参数说明见 README.md对巡检这种周期性、轻负载的场景它比重量级压测框架更合适不装依赖、不占内存、输出可被csv落盘。一键安装步骤macOSHomebrew 用户brew install hey任意平台从源码构建git clone https://gitcode.com/GitHub_Trending/he/hey cd hey go build -o hey .构建后把hey放到PATH目录如/usr/local/bin即可cron 里调用更方便。三条命令上手巡检参数文档可直接查看 hey.go 内置的 usage 文本巡检最常用的只有三个参数# ① 对健康检查端点压 30 秒巡检主力命令 hey -z 30s https://your-service.com/health # ② 控制压力10 并发、200 次请求 hey -n 200 -c 10 -z 30s https://your-service.com/ # ③ 输出 CSV 落盘方便趋势分析 hey -z 30s -o csv https://your-service.com/ result.csv-z持续时长如10s、3m到点自动停止巡检首选-c并发数巡检场景建议10~20别把生产环境压崩-q每个 worker 的 QPS 限速对敏感接口加一层保险-t单请求超时秒数默认 20防止慢请求拖垮巡检-m POST -d ...巡检写接口时使用-a user:pass处理 Basic 认证编写巡检脚本把结果存成证据链把上面命令包一层脚本让每次巡检的证据都有时间戳#!/bin/bash # /opt/hey-patrol/patrol.sh mkdir -p /var/log/hey ts$(date %F_%H%M) hey -z 30s -o csv https://your-service.com/health /var/log/hey/hey_$ts.csv echo $ts $(tail -n 2 /var/log/hey/hey_$ts.csv | head -n 1) /var/log/hey/summary.log 提示CSV 中每一行是一次请求的指标配合表格软件或监控系统导入后就能画出响应时间趋势图性能回退一目了然。日志建议用logrotate或定期任务保留 30 天避免磁盘被巡检数据占满。cron 定时任务配置最快配置方法执行crontab -e按巡检粒度加入以下任意一条*/5 * * * * /opt/hey-patrol/patrol.sh # 每 5 分钟巡逻一次高频哨兵 0 * * * * /opt/hey-patrol/patrol.sh # 每小时巡检 0 8 * * * /opt/hey-patrol/patrol.sh # 每天 8 点晨检配置要点5 个字段依次为分、时、日、月、星期新手从*/5高频档起步确认无告警后可降频脚本里一律使用绝对路径cron 环境下PATH很精简巡检窗口避开业务高峰或对非核心端点/health巡检降低误伤风险 ⏰巡检数据怎么用每次执行后hey 会打印一份人类可读的摘要渲染逻辑见 requester/print.go请求执行核心见 requester/requester.go指标巡检时关注什么Average response time与历史基线对比明显抬升即劣化Slowest request毛刺探测超过正常值 2~3 倍要警惕RPS是否显著低于预期并发可能被限流或阻塞状态码分布出现 5xx/超时即视为故障信号错误分布连接失败、DNS 失败等网络层问题建议给每个端点设两条红线错误率 1%或最慢请求超基线 3 倍触发时推送告警巡逻才算闭环。✅巡检最佳实践清单定基线先手动跑几次记录正常值巡检告警才有参照物控压力-c 10、-q 5起步生产环境宁小勿大盯关键路径登录、下单、核心 API 各配一条巡检留痕迹CSV 落盘 摘要日志是事后复盘的第一手资料限超时始终带上-t避免一次慢响应拖慢整个巡检周期附项目文件速查文件说明hey.go主程序参数定义、用法说明、执行入口requester/requester.go请求发送与并发控制核心requester/report.go统计聚合平均/最快/最慢、RPS、错误分布requester/print.go终端报表渲染含延迟分布图Makefile三平台交叉构建脚本go.mod依赖与模块定义README.md完整参数文档与示例hey 本体只有 200 多行主代码配合 cron 这个系统自带调度器你得到的是一条零依赖、可审计、随时可回滚的自动化性能巡逻流水线——从今天起让服务的质量问题在凌晨 3 点被发现而不是在客户群里被发现。【免费下载链接】heyHTTP load generator, ApacheBench (ab) replacement项目地址: https://gitcode.com/GitHub_Trending/he/hey创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考