自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用cgroups控制Linux容器的計算容量

云計算 虛擬化
cgroups是一種技術(shù),允許管理員創(chuàng)建資源組并對特定進(jìn)程能夠使用的資源進(jìn)行限制。不使用cgroups,虛擬容器可能會耗盡資源導(dǎo)致其他進(jìn)程無法獲取到。使用cgroups,管理員能夠限制特定容器能夠使用的資源。這些限制在主機(jī)操作系統(tǒng)上創(chuàng)建,適用于組內(nèi)的所有虛擬容器。

 基于容器的虛擬化稱為Linux容器(LXC),它可能是傳統(tǒng)hypervisor之外很有效的一個替代選擇。然而如果配置不正確,虛擬容器可能會耗盡所有資源、導(dǎo)致其他進(jìn)程無法獲取到資源,對性能造成潛在的影響,比傳統(tǒng)的hypervisor不再有任何優(yōu)勢。為避免該問題,管理員可以使用cgroups對進(jìn)程能夠使用的資源進(jìn)行限制以確保虛擬環(huán)境高效運(yùn)行。

什么是cgroups?

cgroups是一種技術(shù),允許管理員創(chuàng)建資源組并對特定進(jìn)程能夠使用的資源進(jìn)行限制。不使用cgroups,虛擬容器可能會耗盡資源導(dǎo)致其他進(jìn)程無法獲取到。使用cgroups,管理員能夠限制特定容器能夠使用的資源。這些限制在主機(jī)操作系統(tǒng)上創(chuàng)建,適用于組內(nèi)的所有虛擬容器。

在LXC中啟動容器

創(chuàng)建LXC虛擬容器后,系統(tǒng)會拷貝容器的文件到形成容器的chroot環(huán)境。接下來,容器在主機(jī)操作系統(tǒng)之上啟動,主機(jī)操作系統(tǒng)會對容器使用的資源進(jìn)行控制。當(dāng)你啟動新容器時,Linux為該容器創(chuàng)建了一個cgroup,可限制容器能夠使用的資源。

為調(diào)整這些資源,管理員能夠在cgroup配置文件中對限制進(jìn)行定義??梢栽谥鳈C(jī)操作系統(tǒng)的文件系統(tǒng)掛載點下訪問這些配置文件。例如,SUSE Linux Enterprise Server 11.3的配置文件位于/sys/fs/cgroup目錄下。每種資源都有其自己的子目錄。你可以修改這些文件來對虛擬容器能夠使用的資源進(jìn)行限制。

  1. cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,noexec,nosuid,nodev,cpuset) 
  2. cgroup on /sys/fs/cgroup/cpu type cgroup (rw,noexec,nosuid,nodev,cpu) 
  3. cgroup on /sys/fs/cgroup/cpuacct type cgroup (rw,noexec,nosuid,nodev,cpuacct) 
  4. cgroup on /sys/fs/cgroup/memory type cgroup (rw,noexec,nosuid,nodev,memory) 
  5. cgroup on /sys/fs/cgroup/devices type cgroup (rw,noexec,nosuid,nodev,devices) 
  6. cgroup on /sys/fs/cgroup/freezer type cgroup (rw,noexec,nosuid,nodev,freezer) 
  7. cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,noexec,nosuid,nodev,net_cls) 
  8. cgroup on /sys/fs/cgroup/blkio type cgroup (rw,noexec,nosuid,nodev,blkio) 
  9. cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,noexec,nosuid,nodev,perf_event) 

讓我們一起看一下如何修改這些限制。內(nèi)存訪問是通過配置文件/sys/fs/cgroup/memory進(jìn)行控制的。在遍歷該目錄時,你將會發(fā)現(xiàn)一個名為lxc的子目錄,在該目錄下會為每個容器創(chuàng)建一個子目錄。有兩個非常有趣的控制文件:memory.max_usage_in_bytes 和memory.usage_in_bytes。

  1. lin:/sys/fs/cgroup/memory/lxc/sles-lxc1 # ls  
  2. cgroup.clone_children memory.max_usage_in_bytes    memory.swappiness 
  3. cgroup.event_control  memory.move_charge_at_immigrate memory.usage_in_bytes 
  4. cgroup.procs      memory.numa_stat         memory.use_hierarchy 
  5. memory.failcnt     memory.oom_control        notify_on_release 
  6. memory.force_empty   memory.soft_limit_in_bytes    tasks 
  7. memory.limit_in_bytes memory.stat 
  8. lin:/sys/fs/cgroup/memory/lxc/sles-lxc1 # cat memory.max_usage_in_bytes 
  9. 15302656 
  10. lin:/sys/fs/cgroup/memory/lxc/sles-lxc1 # cat memory.usage_in_bytes 
  11. 13897728 

在上述列表中你可以看到max_usage_in_bytes參數(shù)當(dāng)前設(shè)置為15MB,目前大約使用了14MB。如果你想增加容器可用的內(nèi)存,你還可以在文件中設(shè)置一個新值。例如,如果你想容器有30MB的可用RAM,可以使用命令echo 30605312 > memory.max_usage_in_bytes。

在創(chuàng)建另一個容器時,會生成另一個配置文件。該文件通常在/etc/lxc目錄下的一個與容器名相同的子目錄下。該容器完整的配置存儲在該文件下,包括其cgroup設(shè)置。管理員能夠限制虛擬容器能夠使用的特定資源。例如,你想使內(nèi)存限制永久生效,那么可以在配置文件的末尾增加一行,為參數(shù)lxc.cgroup.memory.max_usage_in_bytes設(shè)置一個具體的值。下次你啟動虛擬容器時,虛擬容器能夠使用的最大內(nèi)存就由該參數(shù)控制了。

除限制特定容器能夠使用的資源之外,cgroups還能夠限制容器對特定設(shè)備的訪問。在容器配置文件中可以看到如下示例,顯示了設(shè)備訪問屬性。

  1. lxc.cgroup.devices.allow = c 5:0 rwm 
  2. lxc.cgroup.devices.allow = c 4:0 rw 
  3. lxc.cgroup.devices.allow = c 4:1 rwm 
  4. # /dev/{,u}random 
  5. lxc.cgroup.devices.allow = c 1:9 rwm 
  6. lxc.cgroup.devices.allow = c 1:8 rwm 
  7. lxc.cgroup.devices.allow = c 136:* rwm 
  8. lxc.cgroup.devices.allow = c 5:2 rwm 
  9. # rtc 
  10. lxc.cgroup.devices.allow = c 254:0 rwm 

管理員能夠很輕松地增加以上配置,定義虛擬容器能夠訪問哪些設(shè)備以創(chuàng)建更加安全的環(huán)境。

責(zé)任編輯:黃丹 來源: TechTarget中國
相關(guān)推薦

2022-06-27 10:25:55

Kubernetes調(diào)度CPU

2019-05-22 10:43:16

Cgroups容器監(jiān)控

2014-12-01 13:44:03

cgroupscpulimitlinux

2019-07-11 06:22:51

Cgroups容器監(jiān)控

2015-06-05 10:08:27

CgroupsIaaSPaaS

2021-01-04 10:54:58

云計算容量管理

2021-08-18 10:39:13

Ubuntu 21.1Linux 內(nèi)核開發(fā)人員

2020-09-28 15:00:19

Linux容器虛擬化

2024-08-28 08:48:20

Linux資源隔離

2009-09-03 09:10:18

Linux系統(tǒng)分區(qū)容量擴(kuò)充Linux操作系統(tǒng)

2009-09-27 10:48:54

UPS電池容量

2024-05-09 10:33:14

JS計算容量

2023-09-14 09:31:21

Docker容器

2017-03-02 11:25:43

云計算

2010-05-27 10:43:29

Linux流量控制

2021-10-15 08:57:40

內(nèi)存容量

2009-06-22 10:20:01

Spring IoC容

2022-07-23 21:31:24

KubernetesLinux開源

2010-06-04 11:21:42

Linux 流量控制

2021-08-12 15:00:01

Linux終端
點贊
收藏

51CTO技術(shù)棧公眾號