Hardware pro DYI server Docker + CI + webapps(dev)

Hardware pro DYI server Docker + CI + webapps(dev)
« kdy: 30. 01. 2022, 22:35:15 »
Zdravím,
momentálně stavím nový server, na kterém bude běžet jen Docker a v něm Gitlab CI joby a dev verze javascript/python aplikací.
Zatím mám vybráno Asrock Rack X570-D4U + Ryzen 5900X/5950X + 128GB DDR4 ECC + 2X2TB NVMe SSD Pcie4 v LVM mirroru.
U starého serveru je největší bottleneck v buildění javascript aplikací.
Jsou tam miliony souborů z npm a to trvá strašně dlouho, než se překopírujou. Většinou jen minutu zabere nahrání cache pro CI job.
Momentálně mám na Dockeru overlayfs2, takže možná zvolit nějaký block level FS?
Případně máte lepší nápad na hardware, aby se zrychlil build aplikací?


Re:Hardware pro DYI server Docker + CI + webapps(dev)
« Odpověď #1 kdy: 31. 01. 2022, 00:30:09 »
podivej se u těch nvme na jejich TBW, může to pak vycházet dost draho. U menších firem to dělám nad ramdiskem, koupit dnes 256GB ramky není tak drahé (proti nvme diskům) a iops to má velice slušné, nebude ti to každý rok umírat. Nvme do mirroru jde jen přes SW, tím může být celá řada problémů, osobně bych to nedělal. Držet pevnou storage, při začátku jobu nahodit working dir na fast storage, tam to zpracoval a výsledek vyzvednul. Ten SW mirror ti stejně při chybě jednoho disku odstaví celý server, nebude ti dělat žádné checksumu, takže můžeš mít na diskách uložené nesmysly (stává se).

Tyhle konzumní desky neznám, nechceš se podívat po něčem od supermicro? Osobně bych tam dal 10GbE síťovku (kde to vůbec bude běžet?)

Kupuješ do racku? Nebo ti to bude sedět někde pod stolem?

Pokud to bude vytěžované, musíš to dobře chladit, každý stupeň je na spolehlivosti znát.

Re:Hardware pro DYI server Docker + CI + webapps(dev)
« Odpověď #2 kdy: 31. 01. 2022, 14:00:37 »
No já kupuju klasicky NVMe, které mají alespoň 1500x celé přepsání, což děláš >1500TBW u 1TB SSD a >3000TBW u 2TB SSD. To by mělo být v pohodě. Staré disky mám dva roky a mají kolem 300TBW zatím.
Jednou už mi to server odstavilo no, ale to byla část, která měla stripping a ne mirroring.

No, bohužel supermicro nepodporuje Ryzeny a nechci tam dávat klasické servery - přecijen je to jen na dev a žádná produkce tam neběží.
10GbE je zbytečné při naší konektivitě.

Do racku. Case už mám. Jen přehodím železo.

Jo, teploty zatím nešly nad 50°C jak u SSD, tak u CPU, takže snad i s novým serverem nebude problém. :)
« Poslední změna: 31. 01. 2022, 14:03:17 od Darkhunter »

Re:Hardware pro DYI server Docker + CI + webapps(dev)
« Odpověď #3 kdy: 01. 02. 2022, 09:23:35 »
Za me mi prijde tvuj vyber jako rozumny. Sam provozuji server s ASRock Rack deskou, akorat se starsim X470 chipsetem. Supermicro si myslim, ze je porovnatelne s desky ASRock Rack. Je to takovy lepsi consumer grade HW, horsi (pocitove, hlavne podporou co se tyce vydavani firmware/BIOS) server grade HW.
Do te desky se vic jak 128GB RAM nacpat neda - 4 sloty po max. 32GB modulech.
Ja bych hodil ty dva NVME disky do ZFS mirroru, vykonu by to melo mit dost a navic stabilni a provereny filesystem.

V Proxmox se da do LXC kontejneru "bind mount" dataset ze ZFS poolu, takze pak ma kontejner pristup primo na ZFS bez prostredniku, mohlo by pomoc s vykonem (bylo by dobre se podivat na ZFS a pripadne "potunit" nastaveni poolu/datasetu na dany workload). Nevim, jak je to u Docker, ale cekal bych, ze to pujde take...

Pixe

Re:Hardware pro DYI server Docker + CI + webapps(dev)
« Odpověď #4 kdy: 01. 02. 2022, 14:50:20 »
U starého serveru je největší bottleneck v buildění javascript aplikací.
Jsou tam miliony souborů z npm a to trvá strašně dlouho, než se překopírujou....

Nevím jak v gitlabu, ale v jiných CI si prostě jen do dockeru na správné místo mountnu volume s node_modules - nic se pak nikde nekopíruje. Nelze to místo nákupu hardware řešit nějakou konfigurací? Naše servery jsou vyloženě pomalejší - obyč ssd, prehistorické procesory, 16GB RAM a s rychlostí nemáme problém


Re:Hardware pro DYI server Docker + CI + webapps(dev)
« Odpověď #5 kdy: 01. 02. 2022, 15:39:17 »
na node_modules (teda stejné to je i s javou) velice dobře funguje zfs deduplikace, sice to zaplácá paměť, ale té je vždy hafo.

3000TBW u SSD je už dobré číslo a to určitě rok, dva vydrží při plné zátěži. Pořád ale nevidím důvod k mirroru. Artefakty máš stejně v nějakém repositáři, balíčky z internetu musíš mít také ideálně na nějakém svém (třeba cachující Nexus), pak druhý nvme může sloužit buď jako spare disk nebo naopak přes to můžeš balancovat, pokud jeden umře, práci přesuneš na druhý.

Co by ne, klidně měj staticky vygenerovaný node_modules a ten si mountuj, otázka je, kolik různých sestavení máš, jak často dělá aktualizace, jestli řešíš integritu node_modules a kdo se stará o jeho udržování. Za mě je lepší to dělat načistoto a vždy projít celým procesem, ideálně nestahovat rovnou nic z internetu, ale mít vše u sebe, abys to mohlo kontrolovat a případně fixovat.

Re:Hardware pro DYI server Docker + CI + webapps(dev)
« Odpověď #6 kdy: 15. 02. 2022, 19:54:12 »
No já mám právě na jednom serveru zfs, ale teda s plotnovými disky a SSD jen na ARC cache a ZIL a je to sakra pomalé...Throughput na write zhruba 30MB/s, tak se bojím hodit Docker + ZFS na ty NVMe SSD, aby to nebylo pomalé...
Nexus používáme. Nemáme tam žádná data na backup, ale u těch testovacích databází je škoda o ně přijít.
Navíc tam máme nějaké configy a docker-compose, o které bych nerad přišel, ale to se dá backupovat no.
No my ty node_modules instalujeme přes CI. Máme gitlab caching dle hashsumu yarn_locku, což znamená, že pokud se změní cokoliv v yarn_locku, tak se to buildí znovu.
Ohledně toho mirroringu - největší problém asi nemám se ztrátou dat, ale když jeden disk skončí, tak ten server bude dva dny ležet...Což je pro mě dost problém...

Re:Hardware pro DYI server Docker + CI + webapps(dev)
« Odpověď #7 kdy: 15. 02. 2022, 20:10:19 »
Jinak k ostatním příspěvkům:
My node_modules cachujeme přes gitlab ci, takže se to kopíruje do toho kontejneru vždy, což asi bude pomalejší než mount...
Zjišťuju, jak je na tom ZFS s dockerem. Má přímo zfs driver.

Re:Hardware pro DYI server Docker + CI + webapps(dev)
« Odpověď #8 kdy: 17. 02. 2022, 11:04:34 »
Pořád ale nevidím důvod k mirroru.

Tohle mi prijde dost kratkozrake. Ceny SSD (NVME) jsou relativne nizke, takze jeden duvod pro ano.
Ale jako dulezitejsi mi prijde, ze SSD (narozdil od HDD) mohou umrit bez varovani. Takze proc se nepojistit proti vypadku tim, ze dam 2 SSD do mirroru (samozrejme ne ze stejne serie, koupene ve stejnou chvili), abych si usetril ztratu dat a vypadek... Jako bonus dostanu rychlejsi cteni (ac pri zapisu zadne vyhody co se tyce rychlosti nejsou). Ja to vidim jako win-win.