動(dòng)態(tài)切換Linux使用的CPU數(shù)量
動(dòng)態(tài)切換Linux使用的CPU數(shù)量
中央處理器(CentralProcessingUnit)的縮寫(xiě),即CPU,CPU是電腦中的核心配件,只有火柴盒那么大,幾十張紙那么厚,但它卻是一臺(tái)計(jì)算機(jī)的運(yùn)算核心和控制核心。下面是學(xué)習(xí)啦小編帶來(lái)的關(guān)于動(dòng)態(tài)切換Linux使用的CPU數(shù)量的內(nèi)容,歡迎閱讀!
動(dòng)態(tài)切換Linux使用的CPU數(shù)量:
摘要: 由于要測(cè)試一些代碼,其運(yùn)行結(jié)果會(huì)受到多核并行的影響,所以希望能夠調(diào)整使用的 CPU 數(shù)量。網(wǎng)絡(luò)上之前看到的方法是在內(nèi)核的啟動(dòng)參數(shù)上添加一個(gè) maxcpus,但是如果這樣的話每切換一次都要重啟一次,是在太麻煩了。想 ...
由于要測(cè)試一些代碼,其運(yùn)行結(jié)果會(huì)受到多核并行的影響,所以希望能夠調(diào)整使用的 CPU 數(shù)量。
網(wǎng)絡(luò)上之前看到的方法是在內(nèi)核的啟動(dòng)參數(shù)上添加一個(gè) maxcpus,但是如果這樣的話每切換一次
都要重啟一次,是在太麻煩了。想想 Linux 應(yīng)該是很強(qiáng)大的,所以可以動(dòng)態(tài)修改 CPU 數(shù)量才對(duì)。
無(wú)意中看到 Linux 代碼的 Documentation 文件夾下有個(gè)文件叫做 cpu-hotplug.txt,于是就看了一下,
發(fā)現(xiàn)可以在 /sys/devices/system/cpu 看到代表各 CPU 的文件夾按照 cpuX 的命名方式,如 cpu0、
cpu1、cpu2 等。這些文件夾里面有一個(gè) online 文件,如果其值為0則禁用該 CPU,如果為1則啟用
該 CPU。注意,這里需要 root 權(quán)限哦。
因?yàn)槲抑灰趩魏撕投嗪酥g切換,所以我寫(xiě)了兩個(gè)腳本放在 /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
之后需要切換的時(shí)候,只要運(yùn)行 sudo singlecore 或者 sudo multicore 就可以了~
順便說(shuō)一句,我當(dāng)時(shí)在想,如果我禁用了所有的 CPU 會(huì)怎么樣呢?結(jié)果發(fā)現(xiàn) cpu0 是
沒(méi)有 online 文件的,也就是 Linux 至少保證一個(gè) CPU 處于可用狀態(tài)。
看了動(dòng)態(tài)切換Linux使用的CPU數(shù)量文章內(nèi)容的人還看:
3.Linux top命令查看多核CPU每個(gè)核心的使用率