繁体   English   中英

什么决定了服务器或 LAMP 堆栈的最大并发用户数?

[英]What determines a server's or LAMP stack's max concurrent users?

我正在寻找构建自己的服务器以获得乐趣并了解该过程。

我将在服务器上设置一个 LAMP 堆栈,并将其用作我的移动应用程序的后端,该应用程序每天有大约 1000 名活跃用户。

但是我完全不知道是什么决定了我的服务器的限制。 我在许多托管服务提供商的网站上看到他们提供固定数量的并发用户,例如 20 或 100。

决定服务器最大并发用户数的原因是什么 它是否仅取决于服务器的硬件,例如可用的 RAM? 它与代码或软件有关吗? 当已达到最大限制时尝试访问服务器的用户会发生什么?

您的问题实际上与任何代码问题无关,但是既然您问了...

我将在服务器上设置一个 LAMP 堆栈,并将其用作我的移动应用程序的后端,该应用程序每天有大约 1000 名活跃用户。

如果您关心性能,您可能应该使用 LEMP 而不是 LAMP。

但是我完全不知道是什么决定了我的服务器的限制。 我在许多托管服务提供商的网站上看到他们提供固定数量的并发用户,例如 20 或 100。

您可以购买的所有服务器可以分为 3 个简单的组:

  1. 共享主机(您和其他 1000 人共享同一台服务器)。
  2. VPS/VDS(服务器分为N个独立的部分,保证你的资源: M个CPU核, K RAM, T GB HDD/SSD, S GB进出流量)。
  3. 专用服务器(您拥有一切)。

如果您看到任何限制,例如“ X最大连接数”或“ Y SQL 每秒查询数”,这意味着您谈论的是共享主机。 您的消费不得超过您的限制,否则同一服务器的所有客户端可能会受到您的网站/服务“人气”的影响。 如果您不想听到无聊的限制,请至少坚持使用 VPS/VDS,您唯一的限制将是内核、RAM、HDD 空间和流量使用。

当已达到最大限制时尝试访问服务器的用户会发生什么?

取决于您的客户端的软件配置和服务器的配置。 大多数客户端(如浏览器)的默认行为是等待特定超时。 大多数网络服务器 (Apache/Nginx) 的默认行为是将连接保持在队列中,直到解释器 (PHP-CGI/PHP-FPM) 可用或在达到超时时终止(以先到者为准)。 但这对于该方案中的每个参与者都是可配置的,从增加超时到立即丢弃额外负载。

PS如果你真的想测试你的服务器性能,你总是可以使用回归测试/基准测试软件或编写自己的(用连接淹没你自己的服务器,直到它死掉)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM