學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識 > CPU知識 > 動態(tài)切換Linux使用的CPU數(shù)量

動態(tài)切換Linux使用的CPU數(shù)量

時間: 捷鋒774 分享

動態(tài)切換Linux使用的CPU數(shù)量

  中央處理器(CentralProcessingUnit)的縮寫,即CPU,CPU是電腦中的核心配件,只有火柴盒那么大,幾十張紙那么厚,但它卻是一臺計算機的運算核心和控制核心。下面是學(xué)習(xí)啦小編帶來的關(guān)于動態(tài)切換Linux使用的CPU數(shù)量的內(nèi)容,歡迎閱讀!

  動態(tài)切換Linux使用的CPU數(shù)量:

  摘要: 由于要測試一些代碼,其運行結(jié)果會受到多核并行的影響,所以希望能夠調(diào)整使用的 CPU 數(shù)量。網(wǎng)絡(luò)上之前看到的方法是在內(nèi)核的啟動參數(shù)上添加一個 maxcpus,但是如果這樣的話每切換一次都要重啟一次,是在太麻煩了。想 ...

  由于要測試一些代碼,其運行結(jié)果會受到多核并行的影響,所以希望能夠調(diào)整使用的 CPU 數(shù)量。

  網(wǎng)絡(luò)上之前看到的方法是在內(nèi)核的啟動參數(shù)上添加一個 maxcpus,但是如果這樣的話每切換一次

  都要重啟一次,是在太麻煩了。想想 Linux 應(yīng)該是很強大的,所以可以動態(tài)修改 CPU 數(shù)量才對。

  無意中看到 Linux 代碼的 Documentation 文件夾下有個文件叫做 cpu-hotplug.txt,于是就看了一下,

  發(fā)現(xiàn)可以在 /sys/devices/system/cpu 看到代表各 CPU 的文件夾按照 cpuX 的命名方式,如 cpu0、

  cpu1、cpu2 等。這些文件夾里面有一個 online 文件,如果其值為0則禁用該 CPU,如果為1則啟用

  該 CPU。注意,這里需要 root 權(quán)限哦。

  因為我只要在單核和多核之間切換,所以我寫了兩個腳本放在 /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 會怎么樣呢?結(jié)果發(fā)現(xiàn) cpu0 是

  沒有 online 文件的,也就是 Linux 至少保證一個 CPU 處于可用狀態(tài)。

看了動態(tài)切換Linux使用的CPU數(shù)量文章內(nèi)容的人還看:

1.Linux查看cpu個數(shù)

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

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

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

5.Linux平臺Cpu使用率的計算

6.linux查看多個cpu信息

7.Linux TOP命令 按內(nèi)存占用排序和按CPU占用排序

8.linux在多核處理器上的負載均衡原理

613701