性能调优¶
本文档提供一些性能优化建议,供参考。实际效果可能因环境而异,建议根据实际情况调整。
配置参数调整¶
Worker 配置¶
根据实际并发需求调整 Worker 数量:
worker:
scheduler: "load_weighted_random" # 或 "least_load"
pinned_per_node: 64 # 根据服务器资源调整
ttl: 300 # Worker 心跳超时
参考建议(仅供参考):
- 小型环境(< 50 设备):pinned_per_node: 32
- 中型环境(50-200 设备):pinned_per_node: 64
- 大型环境(> 200 设备):pinned_per_node: 128
注意
实际效果取决于服务器资源、网络状况和设备响应速度,建议从小值开始逐步调整。
Job 配置¶
根据任务类型调整超时和保留时间:
参考建议:
- 快速查询命令(如 show version):timeout: 300
- 配置变更操作:timeout: 600
- 批量操作:timeout: 1800
Gunicorn Worker¶
队列策略¶
FIFO 队列¶
- 适用场景:一次性操作、HTTP 短连接
- 特点:简单通用
Pinned 队列¶
- 适用场景:频繁操作同一设备
- 特点:支持连接复用,可能提升性能
监控和排查¶
查看系统状态¶
# 健康检查
curl -H "X-API-KEY: YOUR_API_KEY" http://localhost:9000/health
# 查看容器资源使用
docker stats
# 查看日志
docker compose logs | grep -E "(timeout|ERROR)"
常见问题¶
任务执行缓慢¶
可能原因: - Worker 数量不足 - 网络延迟 - 设备响应慢
可尝试:
- 适当增加 pinned_per_node
- 使用 Pinned 队列策略
- 增加任务超时时间
内存使用过高¶
可尝试:
- 减少 pinned_per_node 数量
- 降低 result_ttl 值
- 重启 Worker 服务
注意事项¶
- 参数调整需要根据实际环境测试验证
- 建议逐步调整,观察效果
- 监控系统资源使用情况
- 合理设置超时时间,避免过长或过短