動態切換 Linux 使用的 CPU 數量

2021-06-14 22:29:35 字數 1360 閱讀 8158

動態切換 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]\+')

docpu_online="$cpus_dir/$cpu/online"

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

then

echo 0 > "$cpu_online"

fidone

multicore

#!/bin/bash

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

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

docpu_online="$cpus_dir/$cpu/online"

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

then

echo 1 > "$cpu_online"

fidone

之後需要切換的時候,只要執行 sudo singlecore 或者 sudo multicore 就可以了~

順便說一句,我當時在想,如果我禁用了所有的 cpu 會怎麼樣呢?結果發現 cpu0 是

沒有 online 檔案的,也就是 linux 至少保證乙個 cpu 處於可用狀態。

Linux使用者切換命令的使用 su sudo

su用於使用者之間的切換,但是切換前的使用者依然保持登入狀態。如果是root向普通切換則不需要密碼,反之普通使用者切換到其它任何使用者則都需要密碼驗證。su不加任何引數預設切換到root使用者,但沒有轉到root使用者根目錄下 su 加引數 表示預設切換到 root 使用者,並轉到 root 使用者...

QT的動態語言切換

1.在.pro檔案裡新增的內容如下 2.新增好以後,在工具 外部 qt語言家 更新語言 啟動外部工具 c qt 4.8.6 bin lupdate.exe c qt test qtwidget qtwidget.pro updating zh cn.ts found 7 source text s ...

Linux計算cpu使用率

計算總的 cpu 使用率 totalcpuuse 1 取樣兩個足夠短的時間間隔的 cpu 快照,即讀取 proc stat 檔案,獲取兩個時間點的下列資料 cput1 user1,nice1,system1,idle1,iowait1,irq1,softirq1,stealstolen1,guest...