📜  在 ubuntu 终端上停止 cpu 调度程序 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:07:50.602000             🧑  作者: Mango

在 Ubuntu 终端上停止 CPU 调度程序

当我们需要在 Ubuntu 终端上停止 CPU 调度程序时,可以通过一些命令来实现。CPU 调度程序是负责将 CPU 时间分配给不同的进程,以便它们在系统中运行的程序。但有些情况下,我们需要暂时停止 CPU 调度程序,以便某个程序拥有整个 CPU 并占用全部资源,例如进行性能测试等。

下面是在 Ubuntu 终端上停止 CPU 调度程序的两种方法。

方法一:通过 taskset 命令

taskset 命令可以启动一个进程,并显式地指定要使用的 CPU 核心。在这种情况下,我们可以使用 taskset 命令将进程限定到一个 CPU 核心上,并将其他 CPU 核心的调度程序暂停,以达到暂停 CPU 调度程序的目的。

# 首先需要安装 taskset 命令
sudo apt-get install util-linux

# 然后使用 taskset 命令启动进程并指定使用 0 号 CPU 核心
taskset -c 0 command

# 注意:command 为要运行的命令,例如执行 top 命令
taskset -c 0 top
方法二:通过 cgroup 控制组

cgroup 是 Linux 内核提供的一个机制,可以将进程分组,并对分组的进程进行资源控制和限制。我们可以通过 cgroup 控制组来暂停 CPU 调度程序。

# 首先需要安装 cgroup 工具
sudo apt-get install cgroup-tools

# 创建一个名为 cpu-limit 的 cgroup
sudo cgcreate -g cpu:/cpu-limit

# 将当前进程加入 cpu-limit cgroup 中
sudo cgclassify -g cpu:/cpu-limit $(pidof command)

# 设置 cpu-limit cgroup 的 CPU 份额为 0,即暂停 CPU 调度程序
sudo cgset -r cpu.shares=0 cpu-limit

# 注意:command 表示要运行的命令,例如执行 top 命令
sudo cgclassify -g cpu:/cpu-limit $(pidof top); sudo cgset -r cpu.shares=0 cpu-limit

以上就是在 Ubuntu 终端上暂停 CPU 调度程序的两种方法,可以根据需求选择其中一种方法来实现。