CPU 与调度60 条

调度调参方法论

调度类调参流程:先录制参数基线,再明确目标指标(延迟/吞吐),一次只改一项,用压测对比,未达标即回退。

什么是调度调参方法论

调度与内核参数的调优失败,多数不是因为参数选错,而是缺少可对比的基线:同时改多个参数、压测流量不具代表性、只看平均值不看尾延迟,都会让结论失去意义。可靠的做法是固定的四步——先留存参数与指标基线,再单变量修改,用代表性压测采集同样的指标,最后对比决定固化还是回退。

基本信息

步骤 1留存 baseline:sysctl 快照 + 内核版本
步骤 2单变量修改,一次只动一项
步骤 3代表性压测,采集同一组指标
步骤 4对比结论:固化到配置管理或回退
必备输入业务峰值特征、SLO 目标、回滚方式
记录载体变更单里附参数差异与指标对比

典型使用场景

  • 网络参数调优:从基线到结论形成可复核的证据链
  • 性能问题复盘:判断某次调参到底有没有效果
  • 容量规划:用基线数据推算资源需求
  • 跨机器一致性核对:避免同角色机器参数不一致
  • 变更评审:把参数差异与压测结果一起提交给评审人

基线快照

基线快照
sysctl -a 2>/dev/null | grep -E '^(kernel|vm|net)\.' > /tmp/sysctl-baseline-$(date +%F).txt
uname -r >> /tmp/sysctl-baseline-$(date +%F).txt
lscpu | head -20 >> /tmp/sysctl-baseline-$(date +%F).txt
# 采集指标基线(示例)
sar -u 1 5 > /tmp/sar-baseline-$(date +%F).txt
ss -s > /tmp/ss-baseline-$(date +%F).txt
# 变更后重复采集并 diff:
diff /tmp/sysctl-baseline-2026-10-13.txt /tmp/sysctl-baseline-2026-10-14.txt

调参常见错误

错误做法后果正确做法
一次改多个参数无法归因是谁起作用单变量修改并记录
没有基线没有对比对象变更前留存参数与指标
压测流量不具代表性结论无法迁移到生产按真实峰值特征设计
只看平均值尾延迟恶化被掩盖同时看 P95/P99 与错误率
参数修改要落到配置管理或持久化文件里,仅用 sysctl -w 临时改动的结果会在重启后消失,容易让下一次排查基于错误的前提。
不同内核版本的默认值存在差异,把一台机器的调参结果直接复制到另一版本上是常见的翻车场景;复制前先核对版本与默认值。

易错点

  • 没有基线就没有归因,多个参数一起改无法判断收益与副作用
  • 不同内核版本的默认值不同,跨版本迁移机器时旧调参可能适得其反
  • 只用临时命令改动而不写回配置文件,重启即失效,运维与排障都失去依据
  • 压测设计与生产流量特征差异过大,得到的结论无法迁移,反而增加对参数的盲目信任

数据来源与参考

  • Linux 内核 Documentation/admin-guide/sysctl/
  • sysstat / perf 官方文档(度量方法)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌