<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 學習電腦 > 操作系統 > Linux教程 > Linux下如何使用cgroups管理CPU資源

        Linux下如何使用cgroups管理CPU資源

        時間: 孫勝652 分享

        Linux下如何使用cgroups管理CPU資源

          通過前面的介紹,我們了解到Linux中cgroups可用來限制cpu資源,那么具體要如何實現呢?下面學習啦小編就給大家介紹下Linux中如何使用cgroups來限制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 才行。在其他環境中,更高版本或更低版本內核上均未發現

          上面就是Linux中使用cgroups控制cpu資源的方法介紹了,如果你運行的程序占用過多資源,可以使用cgroups控制cpu資源,趕緊試試看吧。

        310799 主站蜘蛛池模板: 欧洲熟妇色xxxxx| 人人妻人人澡人人爽人人精品97| 狠狠色丁香久久婷婷综合蜜芽五月| 国产香蕉在线视频| 久久精品国产色蜜蜜麻豆| 精品国产这么小也不放过| 欧美成人h亚洲综合在线观看| 亚洲精品三区二区一区一| 国内精品久久人妻无码不卡 | 日韩一区二区三区在线视频| 亚洲最大日韩精品一区| 色婷婷亚洲精品综合影院| 久久国产精品夜色| 少妇人妻中文字幕hd| 熟女无套高潮内谢吼叫免费| 欧洲尺码日本尺码专线美国又| 亚洲国产一区二区三区亚瑟| 天天躁日日躁狠狠躁2018| 免费A级毛片樱桃视频| 久久99久国产精品66| 黑人玩弄人妻中文在线| 青草成人在线视频观看| 亚洲午夜片| 国产97人人超碰CAO蜜芽PROM| 亚洲av高清一区二区| 国产一二三五区不在卡| 欧美做受视频播放| 天天插天天干天天操| ww污污污网站在线看com| 在线精品另类自拍视频| 国产久免费热视频在线观看| 色窝窝免费一区二区三区| 产国语一级特黄aa大片| 日韩在线视频线观看一区| 午夜精品久久久久久久爽 | 黑森林av导航| 国产在线观看免费观看不卡| 九九热在线精品视频九九| 夜色福利站WWW国产在线视频| 亚洲高清aⅴ日本欧美视频| 日韩一区二区一卡二卡av|