Toon posts:

Docker en swap

Pagina: 1
Acties:

Vraag


Acties:
  • 0Henk 'm!

  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Ik gebruik Docker voor diverse containers op een cloud instance van Vultr. De containers worden gestart met docker-compose. Dit gaat uitstekend en stabiel, totdat ik een memory intensieve taak uitvoer. De host gebruikt Ubuntu 18.04. De server heeft 1GB fysieke memory, 6GB swap.

Standaard heeft de Docker engine de memory limit identiek als het fysieke geheugen op de server (=1GB). Dit is in te stellen met "memory" en "memory-swap" options, op te geven bij het starten van een container. Zie:
https://docs.docker.com/c...ers/resource_constraints/

Ik wil dit alleen niet per container aangeven, maar gewoon voor de hele Docker engine zelf. Ik kan dit nergens vinden. Iemand een idee of en hoe dit kan? :P Of een andere tip hieromtrent?

Alle reacties


Acties:
  • +2Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator NOS

There is only one Legend

Je hebt een machine met maar 1 GB geheugen en je draait daar docker op? Dat is je probleem. Leuk dat je dan maar 6 GB 'virtueel' geheugen erbij prikt middels swap, maar dat werkt natuurlijk voor geen meter.

Het is vast lekker goedkoop, maar voor wat je wilt doen is het compleet ongeschikt. Elk systeem zal met zo weinig RAM problemen geven als je een geheugenintensieve taak gaat draaien.

Commandline FTW | Tweakt met mate


Acties:
  • +1Henk 'm!

  • kamerplant
  • Registratie: Juli 2001
  • Niet online
@Hero of Time , dat zal je verbazen. Ik ben laag begonnen en ga natuurlijk upgraden als het nodig is. Ik heb diverse containers uitstekend draaien, met hoge stabiliteit en goede performance met slechts 1GB memory. Docker met Linux containers zijn kennelijk echt heel erg efficiënt. Uiteraard is de belangrijkste factor dat wat in de containers gebeurd, hoeveel resources de apps nodig hebben.
Waarom dan toch m’n vraag? Mocht het geheugen op een zeker moment toch niet genoeg zou zijn, heb ik liever dat er wordt geswapt dan een crash.

Acties:
  • +1Henk 'm!

  • Andre_J
  • Registratie: September 2005
  • Laatst online: 15:52
Ik zelf heb op m’n Linux bakkie met Arch ook maar 400MB in gebruik met Docker.
4 cointainers op dit moment.
Hass, Portainer, Adguard en een logger voor m’n PV installatie.
Vreet dus bijna niks. Wat ie gaat doen met swappen weet ik niet, er zit genoeg ram in.

[Voor 0% gewijzigd door Andre_J op 04-07-2020 23:11. Reden: Typo]


Acties:
  • +1Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator NOS

There is only one Legend

Als je 6 GB aan swap moet toevoegen om te kunnen 'werken' heb je gewoon te weinig RAM. Wordt er constant naar swap geschreven, dan heb je te weinig RAM. Is je swap noodzakelijk een veelvoud van je RAM, dan heb je te weinig.

Kijk eens naar wat het systeem doet en hoeveel het aan het swappen is. Wat is de load? Het geheel is gewoon suboptimaal en je vraagt hiermee gewoon om problemen.

Commandline FTW | Tweakt met mate


Acties:
  • +1Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 16:52

Douweegbertje

Wat kinderachtig.. godverdomme

kamerplant schreef op zaterdag 4 juli 2020 @ 18:52:
@Hero of Time , dat zal je verbazen. Ik ben laag begonnen en ga natuurlijk upgraden als het nodig is. Ik heb diverse containers uitstekend draaien, met hoge stabiliteit en goede performance met slechts 1GB memory. Docker met Linux containers zijn kennelijk echt heel erg efficiënt. Uiteraard is de belangrijkste factor dat wat in de containers gebeurd, hoeveel resources de apps nodig hebben.
Waarom dan toch m’n vraag? Mocht het geheugen op een zeker moment toch niet genoeg zou zijn, heb ik liever dat er wordt geswapt dan een crash.
Ik ga even niet heel subtiel zijn. Dit voelt echt als oude wereld implemteert nieuwe wereld.

Dat je performance slecht is, is omdat je swapped. Swap is geen toevoeging voor memory. Het is een pleister. Of beter gezegd ducktape voor de processen die uit elkaar vallen door gebrek aan jawel, management.

Containers zijn processen. Het nut is juist om dat goed te benutten. Door waardes toe te kennen aan zowel CPU en memory gebruik. Waarom? Omdat je anders niet in control bent. Je kan niet een totaal systeem stabiel opzetten zonder de garantie te hebben dat je processen niet compleet banana`s gaan. En daarin is nu je denkwijze dus nog van de "oude wereld". Want je zit nog te veel na te denken over swap, verbruik, alsof het een OS is.

Waar je echter wel tegenaan loopt is het gebrek van een goede manager. Want dat is de "Docker engine" zelf niet perse. Het is geen echte orchestrator. Ik pak Kubernetes er even bij om je context te geven:

Alle nodes hebben geen swap. Want swap is slecht, maar belangrijker nog: we hoeven niet te swappen! We denken na en limiteren het gebruik. Gaat een process veel gebruiken dan raakt hij of de limits die ik heb ingesteld, of de Max van een server/cluster. Dan is het de vraag wat dat proces doet. Kan hij met die limit verder werken of raakt het OOM? In zo'n geval word de pod gekilled en start hij opnieuw op. Dat is wat ik wil. Blijft hij crashen dan moet ik dat oplossen in de resources of in de applicatie. Maar voor de love of God: ik ga niet 6x m'n geheugen als swap opzetten.

Juist heel het principe van containers en de lifecycle daarvan is om die dingen af te schieten als ze niet goed functioneren. Niet om ze krampachtig vast te houden en net doen alsof het wel werkt.

Vaak heb je dan een cluster met meerdere nodes en zelfs autoscaling van die nodes. Dus als je dan met meerdere containers richting limits gaat (omdat je bijvoorbeeld niets hebt gereserveerd) dan word je container gekilled en opnieuw scheduled. Dan wordt gekeken waar plek is en eventueel gemoved.

Maar zo gaan we het meer hebben over "Docker in productie". Echter staat dat eigenlijk los van dit stuk. Het principe is dat containers niet moeten swappen maar vast mogen blijven leven in een bepaalde scope. Zo draai ik meerdere services die prima blijven leven met de limieten die ik in stel. Doen ze dat niet, dan zal ik de constate restarts moeten accepteren totdat ik meer resources toe voeg.
Pagina: 1



Google Pixel 7 Sony WH-1000XM5 Apple iPhone 14 Samsung Galaxy Watch5, 44mm Sonic Frontiers Samsung Galaxy Z Fold4 Insta360 X3 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee