我有一台运行Nginx,MySQL的物理服务器,并为我的PHP网站提供服务。该服务器具有16 GB RAM的多核处理器。该服务器可以处理一定数量的网络流量。
现在代替这个单一服务器,如果我运行多个docker容器,在其中运行Nginx(App Server)和MySQL(DB Server)的各个实例并在应用程序和数据库容器之间进行负载平衡,它是否能够处理与单个服务器处理相同数量的流量或者它会更少(性能明智)?
如果我使用具有相同硬件配置而非物理服务器的EC2或Digital Ocean Leaflet等虚拟服务器,性能如何?
答案 0 :(得分:3)
由于所有进程都在本机主机上运行(您可以在容器外的主机上运行ps aux并查看它们)。应该有很少的开销。将数据包转发到虚拟主机的网络桥接和IP表条目将增加一些CPU开销,但我无法想象它太繁重了。
答案 1 :(得分:1)
如果问题是几个nginx + 1 mysql而不是几个容器与每个nginx + mysql,可能性能明智更好不使用容器,主要是因为mysql和多少内存可以有if if是单个实例vs多个单独的实例。无论如何,你可以在单独的容器中使用nginx,但是对于所有站点,在容器中使用一个中央mysql。