国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - 詳解Docker cpu限制分析

詳解Docker cpu限制分析

2021-01-09 19:48ARunningPig 服務器知識

本篇文章主要介紹了Docker cpu限制分析,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文測試了,Docker容器限制cpu資源使用的幾個配置參數。分別使用top和dstat命令分析了資源占有情況。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main
 
import (
  "flag"
  "runtime"
  "fmt"
)
 
func main() {
  cpunum := flag.Int("cpunum", 0, "cpunum")
  flag.Parse()
  fmt.Println("cpunum:", *cpunum)
  runtime.GOMAXPROCS(*cpunum)
  for i := 0; i < *cpunum - 1; i++ {
    go func() {
      for {
 
      }
    }()
  }
  for {
 
  }
}

制作了一個測試cpu占用的鏡像,鏡像默認占滿1個核心

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
FROM busybox
COPY ./full_cpu /full_cpu
RUN chmod +x /full_cpu
ENTRYPOINT ["/full_cpu", "-cpunum"]
CMD ["1"]
 
docker build -t fangfenghua/cpuuseset .
docker push fangfenghua/cpuuseset
 
 
docker info
...
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-229.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 993.3 MiB
Name: localhost.localdomain
ID: TU6M:E6WM:PZDN:ULJX:EWKS:
  ...
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
docker run -it --rm=true fangfenghua/cpuuseset
[root@localhost src]# top
 
top - 07:23:52 up 1:23, 2 users, load average: 0.61, 1.12, 1.04
Tasks: 154 total,  3 running, 145 sleeping,  6 stopped,  0 zombie
%Cpu(s): 18.0 us, 0.1 sy, 0.0 ni, 81.8 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 1017144 total,  422120 free,  171676 used,  423348 buff/cache
KiB Swap: 1040380 total, 1040284 free,    96 used.  688188 avail Mem
 
 PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND                                        
20196 root   20  0  3048  720  460 R 101.7 0.1  0:37.56 full_cpu                                        
  1 root   20  0  41536  4028  2380 S  0.0 0.4  0:02.60 systemd                                        
  2 root   20  0    0   0   0 S  0.0 0.0  0:00.04 kthreadd                                        
  3 root   20  0    0   0   0 S  0.0 0.0  0:00.48 ksoftirqd/0                                      
  5 root    0 -20    0   0   0 S  0.0 0.0  0:00.00 kworker/0:0H                                      
  7 root   rt  0    0   0   0 S  0.0 0.0  0:00.69 migration/0
 
docker run -it --rm=true fangfenghua/cpuuseset 4
top - 07:27:17 up 1:27, 2 users, load average: 2.41, 1.47, 1.18
Tasks: 159 total,  3 running, 145 sleeping, 11 stopped,  0 zombie
%Cpu(s): 99.6 us, 0.2 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 1017144 total,  402508 free,  190908 used,  423728 buff/cache
KiB Swap: 1040380 total, 1040284 free,    96 used.  668608 avail Mem
 
 PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND                                        
20935 root   20  0  3048  720  452 R 400.0 0.1  0:55.80 full_cpu                                        
  1 root   20  0  41620  4088  2380 S  0.0 0.4  0:02.88 systemd                                        
  2 root   20  0    0   0   0 S  0.0 0.0  0:00.04 kthreadd

在Linux 系統上,可以用來限制docker容器資源占用的參數有:

  • --cpu-period int              Limit CPU CFS (Completely Fair Scheduler) period
  • --cpu-quota int               Limit CPU CFS (Completely Fair Scheduler) quota
  • -c, --cpu-shares int              CPU shares (relative weight)
  •  --cpuset-cpus string          CPUs in which to allow execution (0-3, 0,1)

docker提供了–cpu-period、–cpu-quota兩個參數控制容器可以分配到的CPU時鐘周期。–cpu-period是用來指定容器對CPU的使用要在多長時間內做一次重新分配,而–cpu-quota是用來指定在這個周期內,最多可以有多少時間用來跑這個容器。跟–cpu-shares不同的是這種配置是指定一個絕對值,而且沒有彈性在里面,容器對CPU資源的使用絕對不會超過配置的值。

cpu-period和cpu-quota的單位為微秒(μs)。cpu-period的最小值為1000微秒,最大值為1秒(10^6 μs),默認值為0.1秒(100000 μs)。cpu-quota的值默認為-1,表示不做控制。

舉個例子,如果容器進程需要每1秒使用單個CPU的0.2秒時間,可以將cpu-period設置為1000000(即1秒),cpu-quota設置為200000(0.2秒)。當然,在多核情況下,如果允許容器進程需要完全占用兩個CPU,則可以將cpu-period設置為100000(即0.1秒),cpu-quota設置為200000(0.2秒)。

使用本文制作的容器鏡像來測試,cpu-period和cpu-quota兩個參數吧。

在本文使用的4核心系統中,如果希望cpuusetest占滿兩個核心,在如何配置呢?從上文的分析中可以看到,如果將cpu-period設置為100000,那么期望占滿4個核心,則需要將cpu-quota設置為4*100000,期望占滿一個核心則可設置為2*100000。下面就測試一下吧:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
docker run --name cpuuse -d --cpu-period=100000 --cpu-quota=200000 fangfenghua/cpuusetest 4
top - 07:46:31 up 1:46, 2 users, load average: 0.16, 0.21, 0.51
Tasks: 168 total,  2 running, 142 sleeping, 24 stopped,  0 zombie
%Cpu(s): 47.8 us, 0.1 sy, 0.0 ni, 51.9 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 1017144 total,  364724 free,  227816 used,  424604 buff/cache
KiB Swap: 1040380 total, 1040284 free,    96 used.  631052 avail Mem
 
 PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND                                        
21766 root   20  0  3048  724  464 R 193.3 0.1  1:00.37 full_cpu                                        
  1 root   20  0  41620  4088  2380 S  0.0 0.4  0:03.13 systemd                                        
  2 root   20  0    0   0   0 S  0.0 0.0  0:00.05 kthreadd                                        
  3 root   20  0    0   0   0 S  0.0 0.0  0:00.52 ksoftir
 
 
top - 07:47:17 up 1:47, 2 users, load average: 0.47, 0.26, 0.51
Tasks: 172 total,  3 running, 144 sleeping, 25 stopped,  0 zombie
%Cpu(s): 99.6 us, 0.1 sy, 0.0 ni, 0.3 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 1017144 total,  358760 free,  233292 used,  425092 buff/cache
KiB Swap: 1040380 total, 1040284 free,    96 used.  625180 avail Mem
 
docker run --name cpuuse -d --cpu-period=100000 --cpu-quota=400000 fangfenghua/cpuusetest 4
 PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND                                        
21976 root   20  0  3048  724  456 R 398.3 0.1  0:16.81 full_cpu                                        
21297 root   20  0    0   0   0 S  0.3 0.0  0:00.08 kworker/0:2                                      
  1 root   20  0  41620  4088  2380 S  0.0 0.4  0:03.19 systemd                                        
  2 root   20  0    0   0   0 S  0.0 0.0  0:00.05 kthreadd

使用上述兩個參數可以,設置cpu的精確控制。還有一個參數cpu-share,是個相對值。假如設置A容器cpu-share為1536,設置B容器為512。那么,在容器B啟動前,cpu占用情況為是什么呢?

?
1
2
3
4
5
6
7
8
9
10
11
top - 07:56:10 up 1:56, 2 users, load average: 0.75, 0.36, 0.50
Tasks: 153 total,  3 running, 140 sleeping, 10 stopped,  0 zombie
%Cpu(s): 99.7 us, 0.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 1017144 total,  436300 free,  155616 used,  425228 buff/cache
KiB Swap: 1040380 total, 1040284 free,    96 used.  703544 avail Mem
 
 PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND                                        
22216 root   20  0  3048  720  456 R 399.3 0.1  0:55.03 full_cpu                                        
  1 root   20  0  41620  4088  2380 S  0.0 0.4  0:03.29 systemd                                        
  2 root   20  0    0   0   0 S  0.0 0.0  0:00.05 kthreadd                                        
  3 root   20  0    0   0   0 S  0.0 0.0  0:00.54 ksoftirqd/0

啟動容器B:

?
1
2
3
4
5
6
7
8
9
10
top - 07:57:09 up 1:57, 2 users, load average: 3.55, 1.16, 0.76
Tasks: 162 total,  4 running, 148 sleeping, 10 stopped,  0 zombie
%Cpu(s): 99.6 us, 0.2 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 1017144 total,  428772 free,  158304 used,  430068 buff/cache
KiB Swap: 1040380 total, 1040284 free,    96 used.  700444 avail Mem
 
 PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND                                        
22216 root   20  0  3048  720  456 R 305.7 0.1  4:40.78 full_cpu                                        
22336 root   20  0  3048  720  460 R 95.3 0.1  0:09.02 full_cpu                                        
  1 root   20  0  41620  4088  2380 S  0.0 0.4  0:03.31 systemd

從上述測試結果不難看出。設置相對數值時,容器B啟動之前,容器A仍然占滿了cpu,而容器B啟動后則,容器占3/4,容器B占1/4。

還有一個參數cpu-sets,指定容器使用的核心。使用上述測試容器測試,指定容器使用0,3核心:

?
1
docker run --name cpuuse -d --cpuset-cpus=0,3 fangfenghua/cpuusetest 4

0,3核心占用率:

?
1
2
3
4
5
6
7
8
9
[root@localhost src]# dstat -c -C 0,3
-------cpu0-usage--------------cpu3-usage------
usr sys idl wai hiq siq:usr sys idl wai hiq siq
 25  9 66  0  0  0: 12  1 87  0  0  0
100  0  0  0  0  0:100  0  0  0  0  0
 99  0  0  0  0  1:100  0  0  0  0  0
 99  1  0  0  0  0: 99  1  0  0  0  0
100  0  0  0  0  0:100  0  0  0  0  0
100  0  0  0  0  0:100  0  0  0  0  0

1,2核心占用率:

?
1
2
3
4
5
6
7
8
[root@localhost src]# dstat -c -C 1,2
-------cpu1-usage--------------cpu2-usage------
usr sys idl wai hiq siq:usr sys idl wai hiq siq
 21  8 71  0  0  0: 10  1 89  0  0  0
 0  0 100  0  0  0: 0  0 100  0  0  0
 0  0 100  0  0  0: 0  0 100  0  0  0
 0  0 100  0  0  0: 0  0 100  0  0  0
 0  0 100  0  0  0: 0  0 100  0  0  0

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/asd05txffh/article/details/52267818

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 一区二区三区在线观看视频 | 国产高清不卡在线 | www.色.com| 二区影院| 成人三区 | 免费黄色在线 | 天天射影院 | 内地农村三片在线观看 | 国产免费高清 | 国产一区在线视频播放 | 亚洲不卡| 永久黄网站色视频免费 | 狠狠躁躁夜夜躁波多野结依 | 成人日韩在线观看 | 在线午夜 | 日日干夜夜干 | 日韩高清一区二区 | 成人免费视频a | 亚洲福利在线播放 | 亚洲精品久久久久久久久久久久久 | 亚洲91 | 四虎免费看黄 | 黄色毛片在线看 | 久久久久久久久99精品 | 精品国产黄a∨片高清在线 91精品国产91久久久 | 日韩在线观看中文字幕 | 欧美三级视频 | 色片视频免费 | 亚洲夜幕久久日韩精品一区 | 国产精品久久久久久亚洲调教 | 欧美电影在线观看 | 在线天堂av | 欧美成人精品一区二区 | 超碰在线9| 国产精品成人一区二区 | 日本一区二区三区四区 | 久久99精品国产自在现线 | 91在线精品一区二区三区 | 毛片网站大全 | 精品久久网 | av网站在线播放 |