利用taskset有效控制cpu資源

來源:互聯網
上載者:User

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

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

查看系統下cpu資訊:

#cat /proc/cpuinfo

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

該工具系統預設安裝,rpm包名util-linux

#taskset --help
taskset (util-linux 2.13-pre7)
usage: taskset [options] [mask | cpu-list] [pid | cmd [args...]]
set or get the affinity of a process

-p, –pid operate on existing given pid
-c, –cpu-list display and specify cpus in list format
-h, –help display this help
-v, –version output version information

舉例:
1、開啟一個只用0標記的cpu核心的新進程(job.sh是你的工作指令碼)

#taskset -c 0 sh job.sh

2、尋找現有的進程號,調整該進程cpu核心使用方式(23328舉例用的進程號)

#taskset -pc 0 23328
pid 23328's current affinity list: 0-3  #0-3表示使用所有4核進行處理
pid 23328's new affinity list: 0 #調整後改為僅適用0標記單核處理

3、可在top中進行負載check

最後你可以在你的工作指令碼中加入該指令來合理利用現有的cpu資源;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.