Docker 2024 04/Resource Restriction: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Drlue (Diskussion | Beiträge) |
Drlue (Diskussion | Beiträge) |
||
| Zeile 53: | Zeile 53: | ||
# stress-ng cpu test (16 cores) for 10 seconds | # stress-ng cpu test (16 cores) for 10 seconds | ||
stress-ng --cpu 16 --timeout 10s | stress-ng --cpu 16 --timeout 10s | ||
}} | |||
=== Disk IO === | |||
50mb/s lesen, 10mb/s schreiben | |||
'''/dev/sda''' ist hierbei nur ein Beispiel. Je nachdem wohin geschrieben wird, muss das entsprechende Device gefunden werden. | |||
{{BML|code= | |||
docker run --device-write-bps /dev/sda:50mb --device-read-bps /dev/sda:10mb --rm -it dockerschulung/resource_limiting_base:1.0 bash | |||
# Write 100mb to /tmp/data (no cache) | |||
dd if=/dev/zero bs=1M count=100 | pv | dd of=/tmp/data iflag=direct | |||
}} | }} | ||
Version vom 17. April 2024, 18:25 Uhr
Im folgenden soll die Limitierung der Ressourcen für Container erläutert werden, diese Informationen Beziehen sich auf das Host System GNU/Linux.
Eine vollständige Liste der Option zur Ressourcen Limitierung von CPU, Memory und GPU findet sich hier.
Während aller Tests docker stats in eigenem Terminal öffnen.
Testimage
Dockerfile
Inhalt in Datei Dockerfile
FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install -y memtester pv
Building Image
docker build . -t dockerschulung/resource_limiting_base:1.0
Memory
512mb RAM, keine Möglichkeit zum swappen
docker run --memory 512m --memory-swap 512m --rm -it dockerschulung/resource_limiting_base:1.0 bash
# tail will be filled with up to 3000mb at a rate of 100mb/s
head -c 3000m /dev/zero | pv -L 100m | tail
512mb RAM, 1gb swap Speicher
docker run --memory 512m --memory-swap 1536m --rm -it dockerschulung/resource_limiting_base:1.0 bash
# tail will be filled with up to 3000mb at a rate of 100mb/s
head -c 3000m /dev/zero | pv -L 100m | tail
CPU
1 Kern
docker run --cpus 1 --rm -it dockerschulung/resource_limiting_base:1.0 bash
# stress-ng cpu test (16 cores) for 10 seconds
stress-ng --cpu 16 --timeout 10s
2 Kerne
docker run --cpus 2 --rm -it dockerschulung/resource_limiting_base:1.0 bash
# stress-ng cpu test (16 cores) for 10 seconds
stress-ng --cpu 16 --timeout 10s
0.5 Kerne
docker run --cpus 0.5 --rm -it dockerschulung/resource_limiting_base:1.0 bash
# stress-ng cpu test (16 cores) for 10 seconds
stress-ng --cpu 16 --timeout 10s
Disk IO
50mb/s lesen, 10mb/s schreiben
/dev/sda ist hierbei nur ein Beispiel. Je nachdem wohin geschrieben wird, muss das entsprechende Device gefunden werden.
docker run --device-write-bps /dev/sda:50mb --device-read-bps /dev/sda:10mb --rm -it dockerschulung/resource_limiting_base:1.0 bash
# Write 100mb to /tmp/data (no cache)
dd if=/dev/zero bs=1M count=100