国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - Linux中使用cgroups限制cpu資源實例

Linux中使用cgroups限制cpu資源實例

2019-11-07 17:44Linux教程網 Linux

這篇文章主要介紹了Linux中使用cgroups限制cpu資源實例,可以避免某個進程占用了所有的CPU資源,需要的朋友可以參考下

這回說說怎樣通過 cgroups 來管理 cpu 資源。先說控制進程的 cpu 使用。在一個機器上運行多個可能消耗大量資源的程序時,我們不希望出現某個程序占據了所有的資源,導致其他程序無法正常運行,或者造成系統假死無法維護。這時候用 cgroups 就可以很好地控制進程的資源占用。這里單說 cpu 資源。

cgroups 里,可以用 cpu.cfs_period_us 和 cpu.cfs_quota_us 來限制該組中的所有進程在單位時間里可以使用的 cpu 時間。這里的 cfs 是完全公平調度器的縮寫。cpu.cfs_period_us 就是時間周期,默認為 100000,即百毫秒。cpu.cfs_quota_us 就是在這期間內可使用的 cpu 時間,默認 -1,即無限制。

跑一個耗 cpu 的程序
 

復制代碼

代碼如下:


# echo 'while True: pass'|python &
[1] 1532

 

top 一下可以看到,這進程占了 100% 的 cpu
 

復制代碼

代碼如下:


PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1532 root 20 0 112m 3684 1708 R 99.6 0.7 0:30.42 python
...

 

然后就來對這個進程做一下限制。先把 /foo 這個控制組的限制修改一下,然后把進程加入進去。
 

復制代碼

代碼如下:


echo 50000 >/sys/fs/cgroup/cpu/foo/cpu.cfs_quota_us
echo 1532 >/sys/fs/group/cpu/foo/tasks


可見,修改設置只需要寫入相應文件,將進程加入 cgroup 也只需將 pid 寫入到其中的 tasks 文件即可。這里將 cpu.cfs_quota_us 設為 50000,相對于 cpu.cfs_period_us 的 100000 即 50%。再 top 一下看看效果。

復制代碼

代碼如下:


PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1532 root 20 0 112m 3684 1708 R 50.2 0.7 5:00.31 python
...

 

可以看到,進程的 cpu 占用已經被成功地限制到了 50% 。這里,測試的虛擬機只有一個核心。在多核情況下,看到的值會不一樣。另外,cfs_quota_us 也是可以大于 cfs_period_us 的,這主要是對于多核情況。有 n 個核時,一個控制組中的進程自然最多就能用到 n 倍的 cpu 時間。

這兩個值在 cgroups 層次中是有限制的,下層的資源不能超過上層。具體的說,就是下層的 cpu.cfs_period_us 值不能小于上層的值,cpu.cfs_quota_us 值不能大于上層的值。

另外的一組 cpu.rt_period_us、cpu.rt_runtime_us 對應的是實時進程的限制,平時可能不會有機會用到。

在 cpu 子系統中,cpu.stat 就是用前面那種方法做的資源限制的統計了。nr_periods、nr_throttled 就是總共經過的周期,和其中受限制的周期。throttled_time 就是總共被控制組掐掉的 cpu 使用時間。

還有個 cpu.shares, 它也是用來限制 cpu 使用的。但是與 cpu.cfs_quota_us、cpu.cfs_period_us 有挺大區別。cpu.shares 不是限制進程能使用的絕對的 cpu 時間,而是控制各個組之間的配額。比如
 

復制代碼

代碼如下:


/cpu/cpu.shares : 1024
/cpu/foo/cpu.shares : 2048

 

那么當兩個組中的進程都滿負荷運行時,/foo 中的進程所能占用的 cpu 就是 / 中的進程的兩倍。如果再建一個 /foo/bar 的 cpu.shares 也是 1024,且也有滿負荷運行的進程,那 /、/foo、/foo/bar 的 cpu 占用比就是 1:2:1 。前面說的是各自都跑滿的情況。如果其他控制組中的進程閑著,那某一個組的進程完全可以用滿全部 cpu。可見通常情況下,這種方式在保證公平的情況下能更充分利用資源。

此外,還可以限定進程可以使用哪些 cpu 核心。cpuset 子系統就是處理進程可以使用的 cpu 核心和內存節點,以及其他一些相關配置。這部分的很多配置都和 NUMA 有關。其中 cpuset.cpus、cpuset.mems 就是用來限制進程可以使用的 cpu 核心和內存節點的。這兩個參數中 cpu 核心、內存節點都用 id 表示,之間用 “,” 分隔。比如 0,1,2 。也可以用 “-” 表示范圍,如 0-3 。兩者可以結合起來用。如“0-2,6,7”。在添加進程前,cpuset.cpus、cpuset.mems 必須同時設置,而且必須是兼容的,否則會出錯。例如
 

復制代碼

代碼如下:


# echo 0 >/sys/fs/cgroup/cpuset/foo/cpuset.cpus
# echo 0 >/sys/fs/cgroup/cpuset/foo/cpuset.mems

 

這樣, /foo 中的進程只能使用 cpu0 和內存節點0。用
 

復制代碼

代碼如下:


# cat /proc/<pid>/status|grep '_allowed_list'

 


可以驗證效果。

cgroups 除了用來限制資源使用外,還有資源統計的功能。做云計算的計費就可以用到它。有一個 cpuacct 子系統專門用來做 cpu 資源統計。cpuacct.stat 統計了該控制組中進程用戶態和內核態的 cpu 使用量,單位是 USER_HZ,也就是 jiffies、cpu 滴答數。每秒的滴答數可以用 getconf CLK_TCK 來獲取,通常是 100。將看到的值除以這個值就可以換算成秒。

cpuacct.usage 和 cpuacct.usage_percpu 是該控制組中進程消耗的 cpu 時間,單位是納秒。后者是分 cpu 統計的。

P.S. 2014-4-22

發現在 SLES 11 sp2、sp3 ,對應內核版本 3.0.13、 3.0.76 中,對 cpu 子系統,將 pid 寫入 cgroup.procs 不會實際生效,要寫入 tasks 才行。在其他環境中,更高版本或更低版本內核上均未發現。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 一级黄色录像在线观看 | 亚洲福利在线观看 | 色综合成人 | 日韩在线电影 | 天天操一操 | av免费观看网站 | 国产精品免费久久久久久久久久中文 | 美女网站全黄 | 人成网址| 欧美精品一二区 | 日韩不卡一区二区三区 | 日韩电影一区二区在线观看 | 久久精品电影网 | 久久久中文字幕 | 91在线看| 美女视频黄色 | 亚洲第一福利视频 | 自拍偷拍小视频 | 国产精品福利午夜在线观看 | 99r精品在线 | 国产精品亚洲第一区在线暖暖韩国 | 成人高清网站 | 国产精品一区不卡 | 国产资源在线观看 | 操操你| 一本大道av日日躁夜夜躁 | 久久国产精品一区二区 | 91av视频在线 | 精品亚洲国产成av人片传媒 | 欧美 亚洲 另类 激情 另类 | 成年人激情视频 | 亚洲精品视频在线免费 | 精品久久久久久久人人人人传媒 | 欧美国产日韩一区 | 精品视频二区三区 | 亚洲性网 | 真实的国产乱xxxx在线 | 国产精品欧美一区二区 | 欧美午夜一区 | 蜜桃av一区二区三区 | 综合久|