2014-10-14 15 views
6

Ho un server fisico che esegue Nginx, MySQL e che serve il mio sito Web PHP. Il server ha un processore Multi-Core con 16 GB di RAM. Questo server può gestire una certa quantità di traffico web.Uso efficiente di più contenitori docker in un singolo host

Ora, invece di questo singolo server, se eseguo più contenitori finestra mobile che eseguono singole istanze di Nginx (App Server) e MySQL (DB Server) al suo interno e bilanciamento del carico tra l'applicazione e i contenitori del database, sarà in grado di gestire la stessa quantità di traffico gestita da un singolo server o sarebbe minore (Prestazioni)?

Come saranno le prestazioni se utilizzo un server virtuale come EC2 o Digital Ocean Leaflet con la stessa configurazione hardware anziché un server fisico?

risposta

3

Poiché tutto il processo viene eseguito sull'host nativo (è possibile eseguire ps aux sull'host all'esterno del contenitore e visualizzarli). Dovrebbero esserci pochissime spese generali. Le voci di bridging e IP Tables di rete per l'inoltro dei pacchetti all'host virtuale aggiungeranno un sovraccarico della CPU, ma non posso immaginare che sia troppo oneroso.

+0

Ho capito che l'overhead sarà inferiore. Ma la mia domanda è il rigrading del server _performance/gestione del traffico_. Il server containerizzato sarà ** in grado di gestire la stessa quantità di traffico ** che può gestire come un singolo server? Un server singolo avrà una istanza di Nginx e MySQL in esecuzione e servirà il mio sito Web PHP. Il server containerizzato avrà più istanze di contenitori Nginx e MySQL in esecuzione e carico bilanciato tra di loro. Entrambi i server avranno la stessa configurazione hardware. Ora quale server può servire efficacemente il traffico? –

+0

Sì, le prestazioni saranno le stesse. Ci sarà una quantità trascurabile di CPU aggiuntiva utilizzata altrimenti non c'è niente di diverso dall'esecuzione di quei processi senza contenitori. –

+0

Mi chiedo, se le prestazioni del server containerizzato e del server non-containerizzato sono le stesse, qual è lo scopo dell'utilizzo di Docker/contenitori nella produzione? Perché abbiamo bisogno di prodotti come CoreOS? –

1

Se la domanda è più nginx + 1 mysql rispetto a diversi contenitori con ogni nginx + mysql, probabilmente le prestazioni sarebbero meglio non usare i contenitori, principalmente perché mysql e quanta memoria può avere se è una singola istanza vs avere più distinti le istanze. Puoi comunque avere il nginx in contenitori separati ma usando un mysql centrale per tutti i siti, in un contenitore o no.

+0

Penso che sia il nocciolo della domanda: qual è il costo della flessibilità (avere un set indipendente e completo di contenitori per ogni applicazione su un host che può essere spostato facilmente) in termini di prestazioni (esecuzione di più istanze dello stesso software server, come MySQL, nginx). Qualsiasi esperienza sarebbe apprezzata. – Bachi