久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

深入理解Docker的硬件資源控制與驗證

前言

?前面兩篇文章主要介紹了有關docker的基礎概念、安裝、以及對鏡像容器的相關操作。重點在于命令的含義以及常用的一些命令的可選項的含義的理解,本文在此基礎上來聊一聊基于硬件層面是上有關docker的資源(物理)控制。

  • 揭開Docker的面紗 – 基礎理論梳理和安裝流程演示  http://www.wangcai868.com/Linux/2020-04/163003.htm
  • Docker基礎命令詳解 – 鏡像及容器操作  http://www.wangcai868.com/Linux/2020-04/163005.htm

一、docker管理資源機制——Control group

? Control group 是Linux內核提供的一種限制所使用物理資源的機制,這些資源主要是CPU、內存、blkio,而Control group簡稱為Cgroup,我們可以在下面的目錄中查看:

[root@docker cgroup]# ls  blkio  cpuacct      cpuset   freezer  memory   net_cls,net_prio  perf_event  systemd  cpu    cpu,cpuacct  devices  hugetlb  net_cls  net_prio          pids  

? 在該目錄下我們可以看到有blkio、cpuset、memory、cpu等與物理硬件資源對應的文件以及目錄。下面就基于上述的三個方面來聊一聊docker是如何使用該機制對這些資源進行管理的。

二、對CPU的控制

? 對CPU的控制有下面幾種方式:

  • 限制CPU的使用率;
  • 多任務按比例分配CPU;
  • 限制CPU內核(核心數)使用;

2.1基于使用率限制CPU

我們可以在文件中查看默認的限制設置,我們先運行一個容器(兩種方式,我們使用run的命令來快速運行一個容器):

#檢查本地是否有鏡像或容器存在  [root@docker ~]# docker images  REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE  [root@docker ~]# docker ps -a  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES    #運行一個容器  [root@docker ~]# docker run -itd --name test CentOS:7 /bin/bash  Unable to find image 'centos:7' locally  7: Pulling from library/centos  ab5ef0e58194: Pull complete   Digest: sha256:4a701376d03f6b39b8c2a8f4a8e499441b0d567f9ab9d58e4991de4472fb813c  Status: Downloaded newer image for centos:7  ff84f35a0d6fdc77d292f7168546848385ab382f3dc1486077933e944c4424b9  [root@docker ~]# docker ps -a  CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES  ff84f35a0d6f        centos:7            "/bin/bash"         About a minute ago   Up About a minute                       test  

我們進入docker目錄下的容器編號目錄中,查看cpu.cfs_quota_us文件,其中的內容默認為-1(我們可以對此更改)

[root@docker ~]# cd /sys/fs/cgroup/cpu/docker/ff84f35a0d6fdc77d292f7168546848385ab382f3dc1486077933e944c4424b9/  [root@docker ff84f35a0d6fdc77d292f7168546848385ab382f3dc1486077933e944c4424b9]# ls  cgroup.clone_children  cpuacct.stat          cpu.cfs_period_us  cpu.rt_runtime_us  notify_on_release  cgroup.event_control   cpuacct.usage         cpu.cfs_quota_us   cpu.shares         tasks  cgroup.procs           cpuacct.usage_percpu  cpu.rt_period_us   cpu.stat  [root@docker ff84f35a0d6fdc77d292f7168546848385ab382f3dc1486077933e944c4424b9]# cat cpu.cfs_quota_us  -1 

? 果然,默認的配額值為-1,這就表示默認情況下是不對CPU資源進行控制的,顯然這樣在使用容器的過程中非常容易出現問題,例如一臺真實服務器運行著各種各樣的數量非常多的容器,而其中一臺容器占據了接近90%的CPU使用率,那么剩下來的如此多的容器只能在剩余的10%中獲取使用,這很容易引發業務故障,因此我們需要對CPU包括隨后的內存及文件IO流進行優化處理的配置。

? 首先,本小節是對CPU的使用率進行的控制,那么下面就來看看怎么配置的吧。

我們可以直接進入這個文件進行設置,那么怎么設置呢?

這就需要說明一下了,CPU的百分比是以1000位單位的,因此總額為100000,即10萬,那么我們寫入20000,則使用率為20%。除了直接改(echo也行)也可以在命令行中進行設置:

[root@docker ~]# docker run -itd --name test1 --cpu-quota 20000 centos:7 /bin/bash  31f9d00fca956d315736dad8a1f2e4c01128d44370af4b37c10298fd2c6a3ee6  [root@docker ~]# docker ps -a  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES  31f9d00fca95        centos:7            "/bin/bash"         14 seconds ago      Up 12 seconds                           test1  ff84f35a0d6f        centos:7            "/bin/bash"         14 minutes ago      Up 14 minutes                           test  

那么我們怎么驗證或者說測試這個使用率占比最高是在20%呢?

我們可以進入這個容器中執行操作,使得CPU滿載,另外開一個terminal使用top命令查看CPU使用情況即可。

#下載bc工具,一種任意精度的計算器語言,可以理解為用于精確計算的  [root@31f9d00fca95 /]# yum install bc -y  #我們使用該工具來計算圓周率  [root@31f9d00fca95 /]# echo "scale=5000; 4*a(1)" | bc -l -q  #說明:其中a是bc的一個內置函數,代表arctan(三角函數哈~),由于tan(pi/4)=1,所以4*arctan(1)=pi 【pi就是π】,5000表示計算精確到小數點后面的5000位,-l表示使用標準數學庫,-q表示 不在界面中輸出。 

? 為了演示整個效果我在另外一個終端使用top命令查看,可以發現整個CPU使用率在20%左右,會有所上浮但是不會過分離譜,計算完成后將會釋放資源的。截取兩張圖作為驗證結果:

深入理解Docker的硬件資源控制與驗證

深入理解Docker的硬件資源控制與驗證

2.2基于比例分配CPU

? 對于上面基于使用率分配給容器的方式可能只適合于少量的容器情況下,容器數量多的時候并不好計算以及設置使用率,這時我們可以通過按比例分配的方式(通過–cpu-share選項配置),這樣既方便又靈活。具體看下面的實例演示:

#創建兩個容器,并且使得兩個容器的CPU比例分配為1:2  [root@docker ~]# docker run -itd --name c1 --cpu-shares 512 centos:7 /bin/bash  6ec8bb5d2fde0cba2ec436484ec037f694c3eaff744a90fd08173205c8121956  [root@docker ~]# docker run -itd --name c2 --cpu-shares 1024 centos:7 /bin/bash  03a587d09afb591bfaaff79a7c998872b85f4375f9ebd48e9aee9c220ed53f98  #查看容器  [root@docker ~]# docker ps -a  CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES  03a587d09afb        centos:7            "/bin/bash"         About a minute ago   Up About a minute                       c2  6ec8bb5d2fde        centos:7            "/bin/bash"         2 minutes ago        Up 2 minutes                            c1  31f9d00fca95        centos:7            "/bin/bash"         29 minutes ago       Up 29 minutes                           test1  ff84f35a0d6f        centos:7            "/bin/bash"         44 minutes ago       Up 44 minutes    

那么怎么進行測試驗證呢?

我們開兩個終端用于進入容器測試,另外一個終端使用docker stats命令查看驗證。

#進入兩個容器都進行下面的操作,我們以其中一個進行演示  [root@docker ~]# docker exec -it 03a587d09afb /bin/bash  [root@03a587d09afb /]# yum install -y epel-release    [root@03a587d09afb  /]# yum install stress -y  #stress是壓測工具,依賴于上面的epel-release

開始在兩個終端上使用stress命令壓測

[root@6ec8bb5d2fde /]# stress -c 4  stress: info: [98] dispatching hogs: 4 cpu, 0 io, 0 vm, 0 hdd  ^C#驗證到結果后就退出吧,因為CPU很累的    [root@03a587d09afb /]# stress -c 4  stress: info: [97] dispatching hogs: 4 cpu, 0 io, 0 vm, 0 hdd  ^C#驗證到結果后就退出吧,因為CPU很累的  

結果:

深入理解Docker的硬件資源控制與驗證

當然這個是會動態變化的,不一定完全是1:2的關系但是一定是接近這個比例的哈~~

2.3基于CPU內核使用限制

? 在docker中可以使用–cpuset-cpus選項來使某些程序獨享CPU的內核,以便提高其處理速度。如果我們的CPU核心數為4那么對應的編號為0,1,2,3,可以通過top命令來查看,按下數字1后就可以查看CPU編號以及對應信息了。

深入理解Docker的硬件資源控制與驗證

具體的控制設置如下:

[root@docker ~]# docker run -itd --name test2 --cpuset-cpus 1,3 centos:7 /bin/bash  116606ef1e11b0afa09da67b2782c1cc0d042eb026cbfe113d7dac11ae818dcc  #即基于cpuset-cpus進行設置

使用第二種方式的測試方法,基于top命令查看驗證,結果如下圖所示:

深入理解Docker的硬件資源控制與驗證

? 當然,基于CPU的限制控制也可以三種方式結合使用,本文主要是為了講解這三種方式。

三、對內存的控制

? 內存使用相對于CPU而言比較簡單了,通過-m參數進行設置。

實例演示:

[root@docker ~]# docker run -itd --name demo -m 512m centos:7 /bin/bash  c69071b6dbc302c5f4d34782a0b7eb663e40cd5f847f4aac45a375c3d4e817d9

在另一個終端上進行查看:docker stats

結果如下圖:

深入理解Docker的硬件資源控制與驗證

限制的大小為512m,就表示只能使用這么大的內存

四、對blkio的控制

? 對應blkio的設置,主要是對于在一臺服務器上進行容器的混合部署的場景,就會出現同時有多個程序寫入磁盤數據的情況,此時可以通過–device-write-iops選項來限制寫入的iops,相應的有–device-read-bps選項可以限制讀取的iops。但是這種方法只能針對blkio限制的是設備,而不是分區。羅列一下吧:

–device-read-bps:限制讀某個設備的bps(數據量)使用多

–device-write-iops:限制寫入某個設備的iops(次數)

實例演示:

[root@docker ~]# docker run -itd --name test4 --device-write-bps /dev/sda:30m centos:7 /bin/bash  16004244b632b8ada5faefdca57e321664e89fe9472dd6195f8eb7f07d7602ee  

表示對sda磁盤設備限制寫入的帶寬為30m,需要進行高并發的操作,可以進行大量的寫入操作即可,這里就不測試驗證的演示了

五、總結

? 本文主要講述的是docker的資源控制的設置(基于CPU、內存、IO)以及對應的測試驗證方法。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲资源网站| 久久国际精品| 久久中文欧美| 捆绑调教美女网站视频一区| 亚洲精品国产精品粉嫩| 亚洲欧美日韩国产一区二区| 九一成人免费视频| 久久中文字幕av| 亚洲精品2区| 亚洲在线一区| 亚洲精品看片| 国产精品porn| 高清久久一区| 日韩欧美中文| 99久久久久| 午夜久久免费观看| 丝袜脚交一区二区| 中文精品电影| 日本欧美一区| 国产毛片一区二区三区| 国产精品成人自拍| 精品高清久久| 在线一区视频观看| 99热精品在线| 日韩三级精品| 免费在线欧美黄色| 中文字幕系列一区| 国产精品日韩久久久| 亚洲精品成人一区| 国产精品白浆| 日韩中文在线播放| 六月婷婷一区| 日韩av成人高清| 麻豆理论在线观看| 欧美一区=区| 免费人成在线不卡| 国产乱码精品一区二区三区四区 | 伊人精品一区| 免费人成黄页网站在线一区二区| 欧美久久精品| 亚洲黄色免费av| 视频一区国产视频| 麻豆国产91在线播放| 99精品网站| 日韩激情一二三区| 精品国产乱码| 在线亚洲成人| 久久精品一区二区三区中文字幕| 中文一区一区三区高中清不卡免费| 激情婷婷亚洲| 国产无遮挡裸体免费久久| 美女av在线免费看| 麻豆91精品| 久久久久久亚洲精品美女| 欧美日韩国产传媒| 久久精品99久久久| 久久影院一区| 国产欧美自拍| 亚洲成人免费| 久久亚洲人体| 蜜臀av在线播放一区二区三区| 久久99精品久久久久久园产越南 | 99日韩精品| 欧美精品导航| 欧美专区18| 97人人精品| 久久亚洲不卡| 欧美69视频| 日韩在线成人| 欧美成人基地| 欧美亚洲福利| 婷婷六月综合| 少妇高潮一区二区三区99| 久久久久久一区二区| 麻豆精品国产91久久久久久| 香蕉国产精品| 国产精品中文字幕亚洲欧美| 国产一区观看| 精品视频在线你懂得| 亚洲一二三区视频| 激情视频网站在线播放色| 日韩精品一页| 国产精品88久久久久久| 国内揄拍国内精品久久| 日本在线成人| 日韩视频免费| 天堂av在线| 国产精品极品在线观看| 日韩中文字幕麻豆| 国产成人精品亚洲日本在线观看| 欧美日韩午夜电影网| 精品一区在线| 欧美13videosex性极品| 久久wwww| 国产午夜精品一区在线观看| 中文字幕一区二区av| 婷婷色综合网| 日韩欧美精品| 国产欧美88| 日韩 欧美一区二区三区| 亚洲黄页一区| 久久久久久久久久久妇女 | 在线精品福利| 中文字幕系列一区| 电影91久久久| 国产探花一区在线观看| 蜜桃av一区二区在线观看| 久久视频精品| 日本美女一区| 成人福利视频| 日本久久黄色| 国产不卡精品在线| 欧美精品aa| 欧美日韩一区自拍| 日韩1区2区日韩1区2区| 日本亚洲不卡| 亚欧成人精品| 亚洲日本国产| 久久午夜精品一区二区| 国产一在线精品一区在线观看| 日韩深夜视频| 蜜桃av在线播放| 视频二区不卡| 另类中文字幕国产精品| 亚洲免费福利| 视频小说一区二区| 久久国产免费| 亚洲精品在线观看91| 亚洲大全视频| 亚洲精品1区2区| 9色精品在线| 久久亚洲视频| 日韩精品欧美成人高清一区二区| 亚洲日产国产精品| 91成人在线| 欧美国产极品| 久久电影tv| 国产高清一区二区| 亚洲婷婷丁香| 青青草精品视频| 国产精品红桃| 日韩精品不卡一区二区| 亚洲性色av| 狠狠干成人综合网| 综合激情一区| 久久国产三级| 国产在线一区不卡| 国产亚洲一区二区手机在线观看| 日韩啪啪电影网| 极品裸体白嫩激情啪啪国产精品| 久久国产精品久久w女人spa| 亚洲男人在线| 国产精品www994| 日韩精品dvd| 视频一区二区三区中文字幕| 日韩1区2区日韩1区2区| 国产精品成人a在线观看| 久久精品99久久无色码中文字幕| 亚洲激情偷拍| 日韩av在线免费观看不卡| 国产精品videosex极品| 日韩在线观看不卡| 久久www成人_看片免费不卡| 亚洲乱码视频| 欧美黄色一区二区| 久久精品青草| 五月亚洲婷婷 | 亚洲二区视频| 中文字幕一区二区精品区| 欧美成人一二区| 久久美女精品| 欧美亚洲免费| 久久久久久久久久久妇女| 日韩视频一区| 国产精品一二| 91精品国产乱码久久久久久久| 免费在线看一区| 国产日产高清欧美一区二区三区| 日本а中文在线天堂| 亚洲精选久久| 国产精选在线| 亚洲精品美女91| 岛国av在线网站| 免费在线观看精品| 国产成人免费| 麻豆亚洲精品| 国产一区二区三区天码| 水野朝阳av一区二区三区| 国产精品欧美在线观看| 99久久久久| 国产麻豆精品| 日韩一级网站| 成人午夜亚洲| 亚洲精品美女| 久久久久国产精品一区二区| 日本午夜精品久久久| 国产91精品对白在线播放| 久久精品av麻豆的观看方式| 欧美日韩国产高清电影| 六月丁香综合在线视频|