cgroup是linux核心提供的一種可以限制、記錄、隔離程序組所使用的物理資源的機制
docker通過cgroup來控制容器使用的資源配額,包括 cpu、記憶體、磁碟三大方面,基本覆蓋了常見的資源配額和使用量控制
cgroup子系統使用dockerfile建立乙個stress工具映象
[root@localhost~]
# mkdir /opt/stress
[root@localhost~]
# cd /opt/stress/
[root@localhost stress]
# vim dockerfile
from centos:7
maintainer lzp "lzp@kgc"
run yum install -y wget
run wget -o /etc/yum.repos.d/epel.repo
run yum install -y stress
[root@localhost stress]
# docker build -t centos:stress .
建立容器[root@localhost stress]
# docker run -itd --name cpu512 --cpu-shares 512 centos:stress stress -c 10
[root@localhost stress]
# docker exec -it b6f7b6a43716 bash
[root@b6f7b6a43716/]
# top
[root@localhost stress]
# docker run -itd --name cpu1024 --cpu-shares 1024 centos:stress stress -c 10
[root@localhost stress]
# docker exec -it d5aabd524580 bash
[root@d5aabd524580/]
# top
啟動兩個容器及執行檢視cpu使用百分比
使用top命令檢視比例,對兩個容器進行比較
在預設情況下,每個docker容器的cpu份額都是1024,單獨乙個容器的份額是沒有意義的。只有在同時執行多個容器時,容器的cpu加權的效果才能體現出來。
兩個引數控制容器cpu時鐘週期
cpu-period和cpu-quota的單位為微秒(us),cpu-period的最小值為1000微秒,最大值為1秒,預設值為0.1秒。cpu-quota的預設值為-1 ,表示不做控制。cpu-period和cpu-quota 引數一般聯合使用
在多核情況下,允許容器程序需要完全占用兩個cpu,則可以將cpu-period設定為100000(即0.1秒),cpu-quota設定為200000(0.2秒)
對多核cpu的伺服器,docker還可以控制容器執行使用那些cpu核心,即使用–cpuset-cpus引數
這對具有多cpu的伺服器尤其有用,可以對需要高效能計算的容器進行效能最優的配置
[root@localhost stress]
# docker run -itd --name cpu02 --cpuset-cpus=0-2 centos:stress
//以上命令需要宿主機為雙核,表示建立的容器只能使用0、1、2三個核心,最終生成的cgroup的cpu核心配置如下
Docker 容器安全
由下圖可見,虛擬機器是通過管理系統 hypervisor 模擬出 cpu 記憶體 網路等硬體,然後在這些模擬的硬體上建立客戶核心和作業系統。這樣做的好處就是虛擬機器有自己的核心和作業系統,並且硬體都是通過虛擬機器管理系統模擬出來的,使用者程式無法直接使用到主機的作業系統和硬體資源,因此虛擬機器也對隔...
mysql安全管理 MySQL安全管理
資料庫伺服器通常包含關鍵的資料,確保這些資料的安全和完整需要利用訪問控制。一 訪問控制 mysql伺服器的安全基礎 使用者應該對他們需要的資料具有適當的訪問權,既不能多也不能少。訪問控制 你需要給使用者提供他們所需的訪問權,且僅提供他們所需的訪問權。在日常工作中,絕不能使用root,應該建立一系列的...
mysql安全管理 MySQL 安全管理
1.使用者管理 mysql將帳戶儲存在系統資料庫mysql的user表,mysql使用者名稱最長可達32個字元 檢視所有使用者 select user,host,authentication string from user 檢視當前使用者的許可權 show grants 檢視gg使用者許可權 sh...