大规模基础设施管理与谷歌云平台应用指南
1. CPU 调度
CPU 调度是在处理器上调度作业的过程,内核的任务是确保 CPU 尽可能保持忙碌。调度分为以下两类:
- 实时调度 :
- SCHED_FIFO
- SCHED_RR
- 普通调度 :
- SCHED_OTHER
- SCHED_BATCH
- SCHED_IDLE
实时线程会使用实时 CPU 调度器之一进行优先调度,普通调度器则用于不需要实时处理的所有线程。
在大规模计算中,可能需要调整 CPU 调度策略。可以通过关注 nonvoluntary_ctxt_switches 参数来检查是否需要调整,以下是查看进程 ID(PID)为 1 的 init 进程的上下文切换情况的示例:
# grep voluntary /proc/1/status
voluntary_ctxt_switches: 136420
nonvoluntary_ctxt_switches: 59
如果非自愿上下文切换次数较高,则可能需要考虑更改调度器。对于与网络带宽和磁盘输入/输出相关的数据吞吐量,建议使用 SCHED_OTHER 调度器;如果关注延迟问题,则使用 SCHED_FIO 调度器。延迟是指事件响应时间,与吞吐量不同,吞吐量的目标是尽可能多地发送
超级会员免费看
订阅专栏 解锁全文
8

被折叠的 条评论
为什么被折叠?



