ドッカーディバホイ(ドッカリソースの制約と検証)

https://blog.51cto.com/gouyc

、ドッキングウィンドウのリソースの制約

カーネルを実行できるドッキングウィンドウには二つの特徴、名前空間、およびのcgroupに依存します。デフォルトでは、コンテナのリソース制限はありません、それはコンテナに割り当てることができるホストカーネル上のすべてのリソースを使い果たすことができます。そのため、コンテナがなくなっ実行しているホストのすべてのリソースを防ぐために、我々は、リソース制限を使用する必要があります。そして、資源制約の機能のいくつかは、LinuxカーネルのサポートLinuxの機能、ドッキングウィンドウの前にバージョン1.13以降のバージョンではまた、リアルタイムのスケジュールをサポートする、唯一のCFSスケジュール(完全にフェアスケジューラ完全に公正なスケジューラ)をサポートし、必要

 

CFSスケジュール:各プロセスは100から139から優先、非優先リアルタイムプロセスを有し、CSFスケジュールはこれらの非リアルタイムプロセススケジューラをスケジュールするために使用され、より高い優先度のプロセスは、第1のCPUが実行されます

リアルタイムスケジュール:優先順位リアルタイムプロセススケジューラ、0-99からのプロセスは、リアルタイムスケジュールはスケジューリングリアルタイムプロセススケジューラに専用されています

 

二、ドッキングウィンドウのメモリ、CPUリソース制限パラメータ

 

図1に示すように、CPU制限

--cpus = <値>:コア4 CPUは、無--cpuset-CPUの場合、次いで1.5 CPUリソースは、コア・コンテナを使用でき、1.5に設定することができれば、利用可能なコンテナのCPUリソースを使用することができる方法を指定次いで、1.5のコアは、コアリソースのいずれかとすることができる使用することができます。このオプションは、上記docker1.3で使用することができます

--cpu-株:容器比例配分CPUリソース、CPUリソース他の容器が空である場合、容器1は、必要に応じて、すべてのCPUリソースを使用して、任意のコアの処理にタスクを割り当てます

--cpuset-CPUを:CPUは、このパラメータは0に設定され、CPUおよび4は、その後数に応じてコア0-3のそれぞれを区別する場合は、コア・コンテナのために使用することができる指定し、それは第1のCPUで使用されてもよいことを意味しますそして、第2のコア。

 

2、メモリとスワップの制限

--memory = <値>:メモリの最大数は、容器として使用することができる指定プロセスは限界より多くのメモリを使用する場合、それは殺すかもしれません

--memoryスワップ:--memoryパラメータを設定していない場合は利用可能なスワップ領域の最大数として指定されたコンテナが、このオプションは、--memoryパラメータを使用しての前提の下で使用されている必要があり、このパラメータは有効になりません

image.png

- メモリ - swappinessを:スワップコンテナに配置された傾向か、0-100。

- メモリ予約:容器のソフトリミットメモリ使用量は、これが--memoryは、システムメモリがタイトな場合に設定されなければならない未満、このコンテナ容器のメモリ使用量の失われたメモリのメモリ値-reservation値を再利用することを意味します標準の予約まで

--oom-殺すディセーブル:コンテナプロセスがOOMが発生した場合、容器を殺傷するかどうか


第三に、圧力の使用は、テストのためのツールを測定します

[root@bogon ~]# docker pull lorel/docker-stress-ng
Using default tag: latest
latest: Pulling from lorel/docker-stress-ng
c52e3ed763ff: Pull complete 
a3ed95caeb02: Pull complete 
7f831269c70e: Pull complete 
Digest: sha256:c8776b750869e274b340f8e8eb9a7d8fb2472edd5b25ff5b7d55728bca681322
Status: Downloaded newer image for lorel/docker-stress-ng:latest
 

1、テストメモリ

1.1、CPU使用率を制限するものではありません。

[root@bogon ~]# docker container run --name stress -it --rm lorel/docker-stress-ng:latest  --cpu 8
stress-ng: info: [1] defaulting to a 86400 second run per stressor stress-ng: info: [1] dispatching hogs: 8 cpu [root@bogon ~]# docker stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 92b0b8d916c1 stress 101.54% 15.81MiB / 983.3MiB 1.61% 648B / 0B 0B / 0B 9 [root@bogon ~]# top top - 19:15:49 up 2 days, 2:38, 2 users, load average: 7.02, 3.00, 1.15 Tasks: 131 total, 10 running, 121 sleeping, 0 stopped, 0 zombie %Cpu(s): 99.7 us, 0.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1006892 total, 100680 free, 320704 used, 585508 buff/cache KiB Swap: 2097148 total, 2096628 free, 520 used. 422732 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 40035 root 20 0 6908 4180 252 R 12.6 0.4 0:12.79 stress-ng-cpu 40037 root 20 0 6908 4180 252 R 12.6 0.4 0:12.78 stress-ng-cpu 40038 root 20 0 6908 2136 252 R 12.6 0.2 0:12.78 stress-ng-cpu 40040 root 20 0 6908 2136 252 R 12.6 0.2 0:12.78 stress-ng-cpu 40036 root 20 0 6908 2136 252 R 12.3 0.2 0:12.77 stress-ng-cpu 40039 root 20 0 6908 2136 252 R 12.3 0.2 0:12.78 stress-ng-cpu 40041 root 20 0 6908 4180 252 R 12.3 0.4 0:12.77 stress-ng-cpu 40042 root 20 0 6908 2136 252 R 12.3 0.2 0:12.77 stress-ng-cpu 1 root 20 0 128484 7208 4196 S 0.0 0.7 0:10.12 systemd
 

あなたが見ることができ、CPUの使用がいっぱいです

 

1.2、パラメータメモリ制限容器に添加し、再始動

[root@bogon ~]# docker container run --name stress --cpus=0.5 -it --rm lorel/docker-stress-ng:latest  --cpu 8
stress-ng: info: [1] defaulting to a 86400 second run per stressor stress-ng: info: [1] dispatching hogs: 8 cpu [root@bogon ~]# docker stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 845220ef9982 stress 51.57% 20.05MiB / 983.3MiB 2.04% 648B / 0B 0B / 0B 9
 

パラメータの設定が有効になります

 

図2に示すように、メモリテスト

2.1、各128メートル、それは二つのメモリを感知する圧力を指定し、メモリの使用を制限するものではありません

[root@bogon ~]# docker container run --name stress -it --rm lorel/docker-stress-ng:latest  --vm 2 --vm-bytes 128m
stress-ng: info: [1] defaulting to a 86400 second run per stressor stress-ng: info: [1] dispatching hogs: 2 vm [root@bogon ~]# docker stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS beb3cfa10748 stress 99.29% 256.2MiB / 983.3MiB 26.05% 648B / 0B 0B / 0B 5
 

メモリ256Mの実際の使用

 

2.2、メモリ制限を追加し、コンテナを再起動します

--memory容器は、メモリ128メートルを制限するために使用することができます

[root@bogon ~]# docker container run --name stress -it --memory=128m --rm lorel/docker-stress-ng:latest  --vm 2 --vm-bytes 128m
stress-ng: info: [1] defaulting to a 86400 second run per stressor stress-ng: info: [1] dispatching hogs: 2 vm [root@bogon ~]# docker stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS decee18cb471 stress 99.47% 126.4MiB / 128MiB 98.77% 648B / 0B 3.19MB / 461MB 5

 

 

おすすめ

転載: www.cnblogs.com/baomaggie/p/11622769.html