学习啦 > 学习电脑 > 电脑硬件知识 > CPU知识 > 动态切换Linux使用的CPU数量

动态切换Linux使用的CPU数量

时间: 捷锋774 分享

动态切换Linux使用的CPU数量

  中央处理器(CentralProcessingUnit)的缩写,即CPU,CPU是电脑中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和控制核心。下面是学习啦小编带来的关于动态切换Linux使用的CPU数量的内容,欢迎阅读!

  动态切换Linux使用的CPU数量:

  摘要: 由于要测试一些代码,其运行结果会受到多核并行的影响,所以希望能够调整使用的 CPU 数量。网络上之前看到的方法是在内核的启动参数上添加一个 maxcpus,但是如果这样的话每切换一次都要重启一次,是在太麻烦了。想 ...

  由于要测试一些代码,其运行结果会受到多核并行的影响,所以希望能够调整使用的 CPU 数量。

  网络上之前看到的方法是在内核的启动参数上添加一个 maxcpus,但是如果这样的话每切换一次

  都要重启一次,是在太麻烦了。想想 Linux 应该是很强大的,所以可以动态修改 CPU 数量才对。

  无意中看到 Linux 代码的 Documentation 文件夹下有个文件叫做 cpu-hotplug.txt,于是就看了一下,

  发现可以在 /sys/devices/system/cpu 看到代表各 CPU 的文件夹按照 cpuX 的命名方式,如 cpu0、

  cpu1、cpu2 等。这些文件夹里面有一个 online 文件,如果其值为0则禁用该 CPU,如果为1则启用

  该 CPU。注意,这里需要 root 权限哦。

  因为我只要在单核和多核之间切换,所以我写了两个脚本放在 /usr/local/sbin 里面:

  singlecore

  #!/bin/bash

  cpus_dir="/sys/devices/system/cpu"

  for cpu in $(ls "$cpus_dir" | grep 'cpu[0-9]\+')

  do

  cpu_online="$cpus_dir/$cpu/online"

  if [[ -e "$cpu_online" && $(cat $cpu_online) = 1 ]]

  then

  echo 0 > "$cpu_online"

  fi

  done

  multicore

  #!/bin/bash

  cpus_dir="/sys/devices/system/cpu"

  for cpu in $(ls "$cpus_dir" | grep 'cpu[0-9]\+')

  do

  cpu_online="$cpus_dir/$cpu/online"

  if [[ -e "$cpu_online" && $(cat $cpu_online) = 0 ]]

  then

  echo 1 > "$cpu_online"

  fi

  done

  之后需要切换的时候,只要运行 sudo singlecore 或者 sudo multicore 就可以了~

  顺便说一句,我当时在想,如果我禁用了所有的 CPU 会怎么样呢?结果发现 cpu0 是

  没有 online 文件的,也就是 Linux 至少保证一个 CPU 处于可用状态。

看了动态切换Linux使用的CPU数量文章内容的人还看:

1.Linux查看cpu个数

2.怎么使用Linux命令查看CPU使用率

3.Linux top命令查看多核CPU每个核心的使用率

4.用linux查看每个CPU的使用率

5.Linux平台Cpu使用率的计算

6.linux查看多个cpu信息

7.Linux TOP命令 按内存占用排序和按CPU占用排序

8.linux在多核处理器上的负载均衡原理

613701