Docker selv pålægger meget lidt overhead, det er bare at isolere processen fra andre processer på værten. Der er dog mange ting, du kan gøre for at forringe ydeevnen af en container:
- Kør det i Windows/MacOS, mens du kun giver den indlejrede VM en brøkdel af hukommelsen/CPU'en i det overordnede OS.
- Begræns CPU- eller hukommelsesressourcer inde i containeren.
- Lancer en masse containere på din vært. Docker er ikke magi, hvis 10 forekomster af Java hver bruger 2 gigs ram bringer værten til at kravle uden for containeren, vil de ikke køre bedre inde i containere.
- Netværkskomplikationer. Hver container er som standard spundet op på en isoleret netværksbro, hvor IO kan tage lidt længere tid med de ekstra hop. Og hvis din DNS ikke er korrekt konfigureret, kan du muligvis se ekstra forsinkelser fra mislykkede opslag.
- Krav til bart metal som direkte diskadgang er ikke tilladt som standard i Docker. Du kan give adgang til bestemte enheder, men ellers er den containeriserede version af appen isoleret med vilje.
- Data i mængder kan ligge på et mindre effektivt sted. Som standard er det dit /var/lib/docker-filsystem, men du kan nemt pege dette på et NFS-mount, hvor ydeevnen ville være endnu dårligere.
- Fejlkonfigureret DB, f.eks. glemmer at oprette et indeks.
Kort sagt er det usandsynligt, at beholderen er selve problemet, men sørg for, at du laver en sammenligning mellem æbler og æbler.