使用taskset命令來限制進程的CPU


      常常感覺系統資源不夠用,一台機子上跑了不下3個比較重要的服務,但是每天我們還要在上面進行個備份壓縮等處理,網絡長時間傳輸,這在就很影響本就不夠用的系統資源;

      這個時候我們就可以把一些不太重要的比如copy/備份/同步等工作限定在一顆cpu上,或者是多核的cpu的一顆核心上進行處理,雖然這不一定是最有效的方法,但可以最大程度上利用了有效資源,降低那些不太重要的進程占用cpu資源;

      taskset就可以幫我們完成這項工作,而且操作非常簡單;

      該工具系統默認安裝,rpm包名util-linux

      借助一個例子說明,借助以前寫過的一個消耗CPU的腳本 原]消耗CPU資源的shell腳本 ,將一台16個CPU的機器上其中4個CPU的資源耗盡:

image

      使用 top 命令能看到4顆CPU跑滿的效果:

image      現在可以使用 taskset 命令調整這些進程所使用的CPU了:

taskset -cp 1  25718
taskset -cp 3  25720
taskset -cp 5  25722
taskset -cp 7  25724

      在top中再看看效果:

image       哈哈,CPU的使用得到調配了,同樣我們可以使某個進程僅使用其中幾個CPU:

taskset -cp 1,2  25718

      更詳細的信息可以用 man taskset 查看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM