什么决定了服务器或 LAMP 堆栈的最大并发用户数?
Posted
技术标签:
【中文标题】什么决定了服务器或 LAMP 堆栈的最大并发用户数?【英文标题】:What determines a server's or LAMP stack's max concurrent users? 【发布时间】:2021-06-29 19:41:38 【问题描述】:我正在寻找构建自己的服务器以获得乐趣并了解该过程。
我将在服务器上设置一个 LAMP 堆栈,并将其用作我的移动应用程序的后端,该应用程序每天有大约 1000 名活跃用户。
但我完全不知道是什么决定了我的服务器的限制。我在许多托管服务提供商的网站上看到,他们提供固定数量的并发用户,例如 20 或 100。
决定一个服务器最大并发用户数的原因是什么?它是否仅取决于服务器的硬件,例如可用的 RAM?它与代码或软件有关吗?当已达到最大限制时尝试访问服务器的用户会发生什么?
【问题讨论】:
它是硬件和软件的结合。如果您编写效率非常低的慢代码来执行简单的任务,那么显然它会更慢地完成请求,因此当它们到达时将能够接受更少的新连接。如果您想真正应对使用高峰和低谷,请考虑基于云的可扩展和/或无服务器环境和架构。如果您认为您将获得相当稳定的流量水平,固定容量的 VPS 会很好。 【参考方案1】:您的问题实际上与任何代码问题无关,但既然您问...
我将在服务器上设置一个 LAMP 堆栈,并将其用作我的移动应用程序的后端,该应用程序每天有大约 1000 名活跃用户。
如果您关心性能,您可能应该使用 LEMP 而不是 LAMP。
但我完全不知道是什么决定了我的服务器的限制。我在许多托管服务提供商的网站上看到,他们提供固定数量的并发用户,例如 20 或 100。
您可以购买的所有服务器可以分为 3 个简单的组:
-
共享主机(您和其他 1000 人共享同一台服务器)。
VPS/VDS(服务器分为N个独立的部分,保证你的资源:M个CPU核心,K个内存,T GB HDD/SSD,S GB 输入/输出流量)。
专用服务器(您拥有一切)。
如果您看到“X 个最大连接数”或“Y 个每秒 SQL 查询数”之类的限制,则表示您谈论的是共享主机。您的消费不得超过您的限额,否则同一服务器的所有客户端可能会受到您的网站/服务“人气”的影响。如果您不想听到无聊的限制,请至少坚持使用 VPS/VDS,您唯一的限制将是内核、RAM、HDD 空间和流量使用。
当已达到最大限制时尝试访问服务器的用户会发生什么?
取决于您的客户端的软件配置和服务器的配置。大多数客户端(如浏览器)的默认行为是等待特定超时。大多数网络服务器 (Apache/nginx) 的默认行为是将连接保持在队列中,直到解释器 (php-CGI/PHP-FPM) 可用或在达到超时时终止(以先到者为准)。但这对于该方案中的每个参与者都是可配置的,从增加超时到立即丢弃额外负载。
附:如果你真的想测试你的服务器性能,你总是可以使用回归测试/基准测试软件或编写自己的(用连接淹没你自己的服务器,直到它死掉)。
【讨论】:
以上是关于什么决定了服务器或 LAMP 堆栈的最大并发用户数?的主要内容,如果未能解决你的问题,请参考以下文章