Nginx 在单个主机中高效地使用多个docker容器

Nginx 在单个主机中高效地使用多个docker容器,nginx,load-balancing,docker,virtualization,lxc,Nginx,Load Balancing,Docker,Virtualization,Lxc,我有一个运行Nginx、MySQL的物理服务器,为我的PHP网站服务。该服务器具有多核处理器和16 GB的RAM。此服务器可以处理一定数量的web流量 现在,如果我运行多个docker容器,在其中运行Nginx(App server)和MySQL(DB server)的单独实例,并在应用程序和数据库容器之间实现负载平衡,那么它是否能够处理与单个服务器处理的流量相同的流量,或者会更少(性能方面) 如果我使用具有相同硬件配置的虚拟服务器(如EC2或Digital Ocean传单)而不是物理服务器,性

我有一个运行Nginx、MySQL的物理服务器,为我的PHP网站服务。该服务器具有多核处理器和16 GB的RAM。此服务器可以处理一定数量的web流量

现在,如果我运行多个docker容器,在其中运行Nginx(App server)和MySQL(DB server)的单独实例,并在应用程序和数据库容器之间实现负载平衡,那么它是否能够处理与单个服务器处理的流量相同的流量,或者会更少(性能方面)


如果我使用具有相同硬件配置的虚拟服务器(如EC2或Digital Ocean传单)而不是物理服务器,性能会如何?

因为所有进程都在本机主机上运行(您可以在容器外部的主机上运行ps aux并查看它们)。开销应该很少。将数据包转发到虚拟主机的网络桥接和IP表条目将增加一些CPU开销,但我不能想象这会太繁重

如果问题是几个nginx+1 mysql与每个nginx+mysql都有几个容器,那么性能方面可能最好不要使用容器,这主要是因为mysql以及如果是一个实例而不是多个单独的实例,可以有多少内存。您可以将nginx放在单独的容器中,但对所有站点使用一个中央mysql,不管是否放在一个容器中。

我知道开销会更少。但我的问题是重新升级服务器性能/流量处理。集装箱服务器是否能够处理与单个服务器相同的流量?单服务器将有一个Nginx&MySQL实例在其中运行,并为我的PHP网站提供服务。容器化服务器将在其中运行多个Nginx和MySQL容器实例,并在它们之间进行负载平衡。两台服务器将具有相同的硬件配置。现在哪台服务器可以有效地为流量提供服务?是的,性能将是相同的。将有一个微不足道的额外CPU使用量,否则就没有什么不同于运行没有容器的进程。我想知道,如果容器化服务器和非容器化服务器的性能相同,那么在生产中使用Docker/容器的目的是什么?为什么我们需要像CoreOS这样的产品?在他们的网站上“CoreOS是为安全性、一致性和可靠性而设计的。”请注意,没有提到任何性能改进。docker的目标是为可重复的应用程序提供隔离的环境。这样,如果一个服务受到损害,主机上的其他服务就安全了。此外,依赖关系管理变得更容易,也就是说,您可以确保不会因为更新了另一个服务的依赖关系而中断一个服务。这很有意义。感谢您的帮助:)我认为这是问题的核心:在性能方面(运行同一服务器软件的多个实例,如MySQL、nginx),灵活性(在一台主机上为每个应用程序提供一组独立且完整的容器,可以轻松移动)的成本是多少。如有任何经验,将不胜感激。