來源:https://blog.csdn.net/lin434406218/article/details/54694900linux
1、單個核100%
代碼kill_cpu.c數據庫
#include <stdlib.h> int main() { while(1); return 0; }
運行以前的CPU小程序
運行:bash
# gcc -o out kill_cpu.c # ./out
結束:Ctrl + C服務器
在運行程序以前先在本地測試本身的程序,避免程序的邏輯錯誤或者死循環的錯誤。測試
數據庫服務器執行某一個SQL或者存儲過程須要大量的運算(通常爲軟件設計不合理)ui
2、讓全部的核都是100%spa
$ for i in `seq 1 $(cat /proc/cpuinfo | grep "physical id" | wc -l)`; do ./out & done
全部的核都是100%,cat /proc/cpuinfo | grep 「physical id」 | wc -l 是獲取到CPU的核數,邏輯核數。這樣每個cpu上都會調度到一個死循環的進程。.net
批量kill進程設計
ps aux
顯示其餘用戶啓動的進程(a)
查看系統中屬於本身的進程(x)
啓動這個進程的用戶和它啓動的時間(u)
把大的做業分給多個CPU一塊兒運行,避免單個CPU運行致使CPU消耗太高而引起的系統奔潰問題
3、讓某個核100%
當前的進程在cpu2上
經過taskset命令綁定CPU(taskset 指定進程運行在某個特定的CPU上)
taskset -cp CPUID 進程ID
把某一個任務直接指定一個CPU專門運行,保證該任務快速運行,不會長期拉低整個系統的運做效率