百度私有PaaS雲就是使用輕量的cgoups做的應用之間的隔離,以下是關于百度架構師許立強,對于虛拟機VM,應用沙盒,cgroups技術選型的了解

本文用腳本運作示例程序,來驗證Cgroups關于cpu、記憶體、io這三部分的隔離效果。
測試機器:CentOS release 6.4 (Final)
啟動Cgroups
在/cgroup,有如下檔案夾,預設是多挂載點的形式,即各個子系統的配置在不同的子檔案夾下
跑一個耗cpu的腳本
top可以看到這個腳本基本占了100%的cpu資源
下面用cgroups控制這個程序的cpu資源
然後top的實時統計資料如下,cpu占用率将近50%,看來cgroups關于cpu的控制起了效果
cpu控制組foo下面還有其他的控制,還可以做更多其他的關于cpu的控制
跑一個耗記憶體的腳本,記憶體不斷增長
top看記憶體占用穩步上升
下面用cgroups控制這個程序的記憶體資源
發現之前的腳本被kill掉
因為這是強硬的限制記憶體,當程序試圖占用的記憶體超過了cgroups的限制,會觸發out of memory,導緻程序被kill掉。
實際情況中對程序的記憶體使用會有一個預估,然後會給這個程序的限制超配50%比如,除非發生記憶體洩露等異常情況,才會因為cgroups的限制被kill掉。
也可以通過配置關掉cgroups oom kill程序,通過memory.oom_control來實作(oom_kill_disable 1),但是盡管程序不會被直接殺死,但程序也進入了休眠狀态,無法繼續執行,仍讓無法服務。
關于記憶體的控制,還有以下配置檔案,關于虛拟記憶體的控制,以及權值比重式的記憶體控制等
<code>[root@localhost /]</code><code># ls /cgroup/memory/foo/</code>
<code>cgroup.event_control memory.force_empty memory.memsw.failcnt </code>
<code>memory.memsw.usage_in_bytes memory.soft_limit_in_bytes memory.usage_in_bytes tasks</code>
<code>cgroup.procs memory.limit_in_bytes memory.memsw.limit_in_bytes </code>
<code>memory.move_charge_at_immigrate memory.stat memory.use_hierarchy</code>
<code>memory.failcnt memory.max_usage_in_bytes memory.memsw.max_usage_in_bytes </code>
<code>memory.oom_control memory.swappiness notify_on_release</code>
跑一個耗io的腳本
通過iotop看io占用情況,磁盤速度到了284M/s
下面用cgroups控制這個程序的io資源
再通過iotop看,确實将讀速度降到了1M/s
對于io還有很多其他可以控制層面和方式,如下
<code>[root@localhost ~]</code><code># ls /cgroup/blkio/foo/</code>
<code>blkio.io_merged blkio.io_serviced blkio.reset_stats </code>
<code>blkio.throttle.io_serviced blkio.throttle.write_bps_device blkio.weight cgroup.procs</code>
<code>blkio.io_queued blkio.io_service_time blkio.sectors </code>
<code>blkio.throttle.read_bps_device blkio.throttle.write_iops_device blkio.weight_device notify_on_release</code>
<code>blkio.io_service_bytes blkio.io_wait_time blkio.throttle.io_service_bytes </code>
<code>blkio.throttle.read_iops_device blkio.</code><code>time</code> <code>cgroup.event_control tasks</code>
本文轉自 326647452 51CTO部落格,原文連結:http://blog.51cto.com/svsky/2082896,如需轉載請自行聯系原作者