Alocare resurse pentru containere in LXD
Postat la Sun 29 April 2018 in tutoriale, lxd, lxc
Implicit containerele pornite in LXD au access la toate resursele disponibile: procesor, memorie, retea, spatiu de stocare.
Limitarile de resurse pot fi definite la nivel de profil sau instanta si aplicate la pornirea/initializarea containerelor.
Procesor
Din punct de vedere al resurselor CPU sunt suportate 4 moduri:
- alocare X nuclee (core-uri)
- alocare specifica nucleelor (1,3 sau 5)
- alocare de procent de CPU
- alocare timp de executie per procesor
Limtarea ca numar de nuclee:
lxc config set u1 limits.cpu 2
Limtarea specifica de nuclee:
lxc config set u1 limits.cpu 1,3
Alocare procentuala de resurse CPU:
lxc config set u1 limits.cpu.allowance 10%
Alocare timpului de executie la CPU:
lxc config set u1 limits.cpu.allowance 25ms/200ms
Ori daca dorim ca containerul sa aibe prioritatea minima la rulare:
lxc config set u1 limits.cpu.priority 0
Memorie
Limitarea memoriei disponibile pentru un container:
lxc config set u1 limits.memory 2GB
Dezactivarea memoriei swap (implicit este activata):
lxc config set u1 limits.memory.swap false
Disc
Limitarea spatiului de disc utilizat de un container se ajusta (cand folosim ZFS/btrfs):
lxc exec u1 -- df -h
Filesystem Size Used Avail Use% Mounted on
lxd001/containers/u1 21G 853M 20G 5% /
lxc config device set u1 root size 40GB
lxc exec u1 -- df -h
Filesystem Size Used Avail Use% Mounted on
lxd001/containers/u1 41G 853M 40G 3% /
Daca discul nu este specificat in configuratie, adica se mosteneste setarile de la profil, atunci putem ajusta prin:
lxc stop u1
lxc config device add u1 root disk path=/ pool=lxd001 size=40GB
lxc start u1
lxc exec u1 -- df -h
Filesystem Size Used Avail Use% Mounted on
lxd001/containers/u1 41G 853M 40G 3% /
De asemenea putem modifica si viteza se citire/scriere pe disc:
lxc config device set u1 root limits.read 30MB
lxc config device set u1 root limits.write 10MB
lxc config device set u1 root limits.read 20Iops
lxc config device set u1 root limits.write 10Iops
sau putem seta prioritatea de citire/scriere (0 la 10):
lxc config set u1 root limits.disk.priority 10
Retea
Setarile se aplica similar ca la disc:
lxc config device set u1 eth0 limits.ingress 50Mbit
lxc config device set u1 eth0 limits.egress 100Mbit
lxc config set u1 limits.network.priority 5
Toate aceste alocari de resurse se pot aplica si la nivel de profil, cu aplicare la toate containere ce il folosesc
lxc profile set dual limits.cpu 2
lxc profile set dual limits.memory 1GB
lxc profile set dual root size 15GB
Articolul face parte din seria Virtualizare cu LXD