sql >> Database >  >> RDS >> Mysql

Prestatieproblemen bij het uitvoeren van een database in een docker-container

Docker zelf legt heel weinig overhead op, het isoleert alleen het proces van andere processen op de host. Er zijn echter veel dingen die u kunt doen om de prestaties van een container te verminderen:

  1. Voer het uit in Windows/MacOS en geef de ingebouwde VM slechts een fractie van het geheugen/CPU van het bovenliggende besturingssysteem.
  2. Beperk CPU- of geheugenbronnen in de container.
  3. Lanceer veel containers op je host. Docker is geen magie, als 10 instanties van Java die elk 2 gig ram gebruiken, de host buiten de container laten kruipen, zullen ze niet beter werken in containers.
  4. Netwerkcomplicaties. Elke container wordt standaard op een geïsoleerde netwerkbrug gedraaid, waar IO wat langer kan duren met de extra hops. En als uw DNS niet correct is geconfigureerd, ziet u mogelijk extra vertragingen door mislukte zoekopdrachten.
  5. Bare metal-vereisten zoals directe schijftoegang zijn standaard niet toegestaan ​​in Docker. Je kunt specifieke apparaten toegang geven, maar anders wordt de gecontaineriseerde versie van de app opzettelijk geïsoleerd.
  6. Gegevens in volumes kunnen zich op een minder efficiënte locatie bevinden. Standaard is dit je /var/lib/docker bestandssysteem, maar je zou dit gemakkelijk kunnen verwijzen naar een NFS-mount waar de prestatie nog slechter zou zijn.
  7. Onjuist geconfigureerde database, bijv. vergeten een index te maken.

Kortom, het is onwaarschijnlijk dat de container het probleem zelf is, maar zorg ervoor dat u een vergelijking maakt tussen appels en appels.



  1. Rails 3.1 - Pushen naar Heroku - Fouten bij het installeren van de postgres-adapter?

  2. Wat is het verschil tussen varchar en nvarchar?

  3. Hoe mysql-tabelrijen in kolommen te transponeren

  4. Speciale tekens uit MySQL werken, maar als ik charset-utf8 toevoeg, gebeurt dat niet. Waarom?