Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我应该运行多少Docker容器_Php_Docker_Nginx_Containers_Reliability - Fatal编程技术网

Php 我应该运行多少Docker容器

Php 我应该运行多少Docker容器,php,docker,nginx,containers,reliability,Php,Docker,Nginx,Containers,Reliability,Docker教程经常说我可以运行更多的容器来提高我的webapp的可用性。然而,这是一个非常宽泛的陈述,并没有解释在不同的情况下应该运行多少个容器。我如何知道我是否需要1、5、10、100或1000个容器实例 示例-我只有一台服务器,正在使用docker运行nginx和php fpm。每个容器装一个。通过这个简单的设置,我的webapp可以正常工作,并且看起来响应迅速。(在同一台服务器上)增加额外的php fpm副本,我会从中受益吗?假设一个容器用于nginx,10个容器用于php-fpm 据我

Docker教程经常说我可以运行更多的容器来提高我的webapp的可用性。然而,这是一个非常宽泛的陈述,并没有解释在不同的情况下应该运行多少个容器。我如何知道我是否需要1、5、10、100或1000个容器实例

示例-我只有一台服务器,正在使用docker运行nginx和php fpm。每个容器装一个。通过这个简单的设置,我的webapp可以正常工作,并且看起来响应迅速。(在同一台服务器上)增加额外的php fpm副本,我会从中受益吗?假设一个容器用于nginx,10个容器用于php-fpm

据我所知,10个php fpm容器只需在它们之间分配可用的计算资源。因此,我可以使用一个包含大量资源的容器,也可以使用10个包含较少资源的容器。什么更好?为什么

我如何知道我是否需要1、5、10、100或1000个容器实例

这完全取决于您的用例或系统负载。若您有一百个用户,那个么
1
容器就足够了

但是,如果没有适当的回答,就不能简单地回答这个问题

因此,我可以使用一个包含大量资源的容器,也可以使用10个 资源较少的容器。什么更好?为什么

许多云提供商建议使用一个资源较少的容器,因为AWS建议使用300到500 MB的内存,这样您就可以在一个实例上运行多个容器

在MiB中为容器定义硬内存和/或软内存限制。坚固的 软限制对应于
内存
内存保留
任务定义中的参数。ECS推荐300-500 MiB作为web应用程序的起点


在生产环境中,您需要设置某种监视系统来报告错误率和请求延迟。如果请求开始变得令人无法接受的慢,那么您应该建立更多的副本和更多的硬件。通常情况下,运行比硬件支持或当前负载所需数量更多的复制副本是没有用的

另一方面,运行2个副本要比运行1个副本困难得多;跑3或10并不比跑2难多少。所以我建议:

  • 如果仅运行1个副本可以满足您的流量负载和可用性需求,则只需运行1个副本
  • 如果您在Kubernetes这样的环境中运行,该环境作为环境的一部分提供负载平衡和零停机升级,请运行2或3个副本;不要过火,但如果有一个副本崩溃,或者有另一个副本正在运行以进行故障转移,您将获得一些恢复能力
  • 运行满足响应时间要求所需的最少数量的副本

    • 这两种情况都有利弊

      如果你用大量资源运行你的应用程序的1个吊舱,你有1个失败点。如果你的豆荚死了(在某一点上它会死);例如,在滚动更新期间,您将有一个小的停机时间

      如果你有很多豆荚运行你的应用程序的副本,要考虑到这些是容器,所以除了你的应用程序之外,还有一个基本映像和依赖项。因此,每个副本都是一个以上的基本映像加上您正在部署的依赖项,因此,您在应用程序上花费的资源就越多

      通常,最好有多个副本,但你不应该对它发疯。研究什么在消耗你的应用程序,设置正确的资源请求。设置HPA以实现更好的恢复能力和更好的群集资源管理