[vpsFree.cz: community-list] vpsAdminOS status report: na čem pracujeme

Jakub Skokan jakub.skokan at vpsfree.cz
Thu Jul 5 10:53:29 CEST 2018


Ahoj,

po pár týdnech přináším zase nějaké nové informace o vpsAdminOS, na čem 
pracujeme a s čím zápasíme :)

Na node1.stg stále ladíme LXCFS, protože upstream verze a kernel neumí 
to co bychom potřebovali. Chybí nám možnost nastavit počet dostupných 
CPU, aniž bychom museli přiřadit nějaké CPU na pevno přes cpuset, tak 
jako to umí OpenVZ. Tzn. aby každý VPS mohl využít 8 libovolných CPU, 
podle toho které CPU mají aktuálně volno. No a ve VPS by jich nemělo být 
vidět víc, i když jich má node více,  např. node1.stg má 32. Ono je to 
matoucí hlavně pro uživatele. Když člověk vidí 32 dostupných CPU, ale 
může z nich využít na plno jen 8, tak si řekne, že to nefunguje.

Na vpsAdminOS k nastavení CPU limitu používáme CPU kvóty 
(cfs_quota/period_us), ale na omezení počtu viditelných CPU už žádné 
prostředky k dispozici nejsou. Takže aktuálně pracuju [1] na úpravě 
LXCFS, aby se v /proc/stat a /proc/cpuinfo zobrazoval správný počet CPU 
podle nastavené kvóty. Z těchto souborů pak čte informace top, htop a 
další monitorovací nástroje.

LXCFS ovšem řeší jen část problému, protože pokud se zeptáte kernelu 
kolik máte CPU přes nějaký syscall, stále dostanete "špatnou" informaci. 
Kernel nějaké úpravy hodnot v LXCFS nezajímají. Např. `nproc` na 
node1.stg stále vracel 32 místo 8. Podle `nproc` se mohou řídit různé 
build systémy, takže jsem se to snažil vyřešit. Výsledkem je kratičký 
patch [2] do kernelu, který upravuje návratovou hodnotu syscallu 
`sched_getaffinity()` tak, že obsahuje jen omezený počet CPU. S touto 
úpravou už `nproc` vrací správné číslo, nicméně tohle řešení není 
ideální a možná to bude rozbíjet nějaké aplikace, uvidíme.

Výše popsané změny jsou na node1.stg nasazeny od minulého týdne.
Pokud jste si všimli něčeho podivného, nebo něco nefunguje jak má, 
hlaste to prosím.

Dále jsme aktualizovali kernel na 4.17. Dlouho nás brzdil bug v NixOS 
[3], kvůli kterému kernel nebyl kompatibilní se ZFS. Teď netrpělivě 
čekáme na 4.18, který bude podporovat FUSE v user namespace, tzn. mělo 
by začít fungovat sshfs, apod.

node1.stg bude fungovat minimálně ještě několik měsiců a místa je tam 
dost, přidejte se :) Té zpětné vazby zatím moc nebylo. Můžete tam 
provozovat cokoliv čemu nevadí časté výpadky. Vytvořené VPS nemažeme, 
dokud je tam místo.

[1] https://github.com/aither64/lxcfs/commits/cpu-views

[2] 
https://github.com/vpsfreecz/vpsadminos/blob/devel/os/packages/linux/sched_getaffinity_cfs_quota.patch

[3] https://github.com/NixOS/nixpkgs/issues/39225

Jakub


More information about the Community-list mailing list