Linux调度器
㈠ Linux 性能调优之配置CPU调度策略和可调参数
当前实验环境
Scheling Processes(进程调度):单个CPU同一时间仅可用执行一个进程!Linux系统通过多任务同时运行多个进程,实现交替执行这些进程以提供公平的CPU时间共享。
调度算法:操作系统通常采用基于优先级的抢占式调度算法,内核通过进程调度器决定哪个进程在特定时间运行,以实现快速确定下一个进程并确保公平性、响应性、可预测性和可扩展性。
调度策略与优先级:Linux系统调度器基于调度策略和调度优先级决定进程执行顺序。策略分为非实时策略与实时策略,非实时策略适用于大多数通用计算系统和应用程序,实时策略适用于对时间敏感的系统和应用程序。
进程优先级:优先级分为静态、动态与实时三种。静态优先级在进程创建时分配,动态优先级随CPU资源调整,实时优先级固定以确保实时任务按时完成。
配置进程优先级:通过ulimit、/etc/security/limits.conf配置静态与动态优先级,nice或renice命令调整动态优先级。
实时调度策略:字段说明包括pri、rtprio与FF,分别表示静态优先级、实时优先级与实时策略。实时调度器适用于具有实时要求的任务,包括截止时间调度器。
非实时调度策略:默认调度器为完全公平调度器(CFS),适用于公平CPU时间分配。CFS调度器使用红黑树数据结构跟踪任务的虚拟运行时间,决定下一个任务执行。
内核调度策略可调参数:通过sysctl命令调整CFS调度算法,例如sched_latency_ns、sched_min_granularity_ns、sched_migration_cost_ns等参数优化性能。
调整调度策略:使用命令行工具如chrt与taskset设置进程的调度策略与优先级,实现进程的资源优化与任务优先级调整。