启用steal task功能

目的

启用steal task功能以进行系统调度的优化。

当一个进程正在执行,而另一个进程需要执行但没有CPU时间片可用时,steal task功能会从正在运行的进程中抢占一部分CPU时间片,分配给需要执行的进程。

方法

  1. 确认当前内核是否支持steal task功能。

    cat /sys/kernel/debug/sched_features |tr " " "\n" |grep STEAL

    如果输出中包含STEALNO_STEAL(NO_STEAL意味着STEAL功能存在但可能被禁用),则表明当前内核支持steal task功能。

  2. 配置steal task功能。

    1. 打开文件。
      vim /etc/default/grub
    2. “i”进入编辑模式,修改启动参数。
      在文件中找到GRUB_CMDLINE_LINUX这一行,添加如下内容:
      sched_steal_node_limit=8

      其中,8为NUMA的个数,请根据实际情况修改。

    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  3. 生成新的GRUB配置文件。

    grub2-mkconfig -o /boot/efi/EFI/bclinux/grub.cfg

  4. 重启操作系统,使GRUB配置的更改生效。

    reboot

  5. 通过写入“/sys/kernel/debug/sched_features”文件来启用steal task功能。

    echo STEAL > /sys/kernel/debug/sched_features

    如果需要禁用steal task功能,请使用如下命令。

    echo NO_STEAL > /sys/kernel/debug/sched_features