我觉得Ubuntu运行有点慢,然后我查看了正在运行的进程,发现有一个进程占用了大约50%的CPU,名字叫做"ksoftirqd/0"。
有人知道这个进程是干什么用的吗?为什么它会占用这么多的CPU资源?还有没有办法减少它对CPU的使用呢?
有人知道这个进程是干什么用的吗?为什么它会占用这么多的CPU资源?还有没有办法减少它对CPU的使用呢?
ksoftirqd
是一个每个CPU的内核线程,在机器承受大量软中断负载时运行。/proc/irq/$interrupt_number/smp_affinity
文件的内容来实现此操作。您可以通过执行以下命令获取中断列表及其含义:cat /proc/interrupts
smp_affinity
中的数字是一个以十六进制代码表示的CPU位图。最右边的位是最低有效位。例如,我的系统有8个核心。如果我只想使用1、3和4号核心,我会将smp_affinity设置为1a
。cpu_7 cpu_6 cpu_5 cpu_4 cpu_3 cpu_2 cpu_1 cpu_0
0 0 0 1 1 0 1 0 = 0001 1010 = 1a (in hex)
echo ff | sudo tee /proc/irq/29/smp_affinity