2014-10-14 37 views
6

Mam fizyczny serwer z Nginxem, MySQL i serwerem PHP. Serwer ma wielordzeniowy procesor z 16 GB pamięci RAM. Ten serwer może obsłużyć pewien ruch sieciowy.Efektywnie za pomocą wielu kontenerów doków w jednym hoście

Teraz zamiast tego pojedynczego serwera, jeśli uruchomię wiele kontenerów doków zawierających pojedyncze instancje Nginx (serwer aplikacji) i MySQL (serwer DB) i zachowam równowagę między kontenerem aplikacji i bazy danych, będzie on w stanie obsłużyć tyle samo ruchu, ile obsługiwany byłby pojedynczy serwer, czy też byłby mniejszy (pod względem wydajności)?

Jaka będzie wydajność, jeśli użyję serwera wirtualnego, takiego jak EC2 lub cyfrowa ulotka oceaniczna, z tą samą konfiguracją sprzętową, co serwer fizyczny?

Odpowiedz

3

Ponieważ wszystkie procesy są uruchamiane na macierzystym hoście (możesz uruchomić ps aux na hoście poza kontenerem i zobaczyć je). Na górze powinno być niewiele. Wpisy mostów sieciowych i IP Tables do przekazywania pakietów do wirtualnego hosta dodadzą trochę narzutów procesora, ale nie mogę sobie wyobrazić, że są zbyt uciążliwe.

+0

Zrozumiałem, że koszty ogólne będą mniejsze. Ale moim pytaniem jest ponowne wybranie serwera _performance/traffic_. Czy kontenerowy serwer będzie w stanie obsłużyć tyle samo ruchu **, ile może obsłużyć jako pojedynczy serwer? Pojedynczy serwer będzie miał jedno wystąpienie Nginx i MySQL i będzie działał na mojej stronie PHP. Kontenerowy serwer będzie miał wiele instancji kontenerów Nginx i MySQL, które będą w nim działać i będzie ładował się między nimi. Oba serwery będą miały tę samą konfigurację sprzętową. Teraz, który serwer może efektywnie obsługiwać ruch? –

+0

Taka wydajność będzie taka sama. Będzie niewielka ilość dodatkowego procesora, w przeciwnym razie nie ma nic innego niż uruchamianie tych procesów bez kontenerów. –

+0

Zastanawiam się, jaki jest cel używania kontenerów Docker/pojemników do produkcji w przypadku, gdy wydajność serwera kontenerowego i niezłożonego serwera jest taka sama? Dlaczego potrzebujemy produktów takich jak CoreOS? –

1

Jeśli pytanie jest kilka nginx + 1 mysql w porównaniu do kilku kontenerów z każdym nginx + mysql, prawdopodobnie wydajność lepiej byłoby nie używać kontenerów, głównie dlatego, że mysql i ile pamięci może mieć, jeśli jest pojedynczym przypadkiem vs mającym wiele oddzielnych instancje. Możesz mimo wszystko nginx w oddzielnych kontenerach, ale za pomocą jednego centralnego mysql dla wszystkich witryn, w kontenerze lub nie.

+0

Myślę, że to jest sedno pytania: Jaki jest koszt elastyczności (posiadanie niezależnego i kompletnego zestawu kontenerów dla każdej aplikacji na jednym hoście, którą można łatwo przenosić) pod względem wydajności (uruchamianie wielu wystąpienia tego samego oprogramowania serwera, takiego jak MySQL, nginx). Wszelkie doświadczenia będą mile widziane. – Bachi