0

我一直希望找出不同的服务器设置在理论上等同于并发页面请求,而答案似乎总是沉浸在巫术和巫术中。以下设置的最大并发页面请求数的近似值是多少?

apache+php+mysql(1台服务器)

apache+php+mysql+caching(如 memcached 或类似(仍然是一台服务器))

apache+php+mysql+caching+专用数据库服务器(2台服务器)

apache+php+mysql+caching+dedicatedDB+loadbalancing(多webserver/单dbserver)

apache+php+mysql+caching+dedicatedDB+loadbalancing(多webserver/多dbserver)

+分布式(亚马逊云弹性)——我知道这个是“你能负担得起的”,但很高兴知道什么时候移到它。

我感谢任何建设性的批评,我只是想弄清楚什么时候从一个实现转移到下一个实现,因为它们每个都有自己的实现壮举,无论是编程还是设置。

4

2 回答 2

1

在您的问题中,您谈到了缓存,这可能是 Web 架构重新性能和容量中最重要的因素之一。

Memcache 很有用,但实际上,在此之前,您应该确保服务器响应上有正确的 HTTP 缓存指令。这做了两件事;它减少了请求数量并加快了服务器响应时间(如果您正确配置了 Apache)。这也可以通过使用像 Varnish 和 CDN 这样的 HTTP 加速器来改进。

另一个需要考虑的因素是您的系统是否是无状态的。无状态通常意味着它不在服务器上存储会话并在每个请求中引用它们。一个好的系统架构尽可能少地依赖状态。状态越少,系统的水平可扩展性就越高。大多数人在遇到个性化问题时会引入状态——即为不同的用户提供不同的内容。在这种情况下,您应该首先使用 HTML5 会话存储进行调查(即,将完整的用户数据存储在客户端的 javascript 中,显然是通过 https),或者如果数据集较小,则使用安全的 javascript cookie。这样,您仍然可以提供缓存资源,然后在客户端使用 javascript 进行个性化设置。

最后,您的堆栈包括一个数据库层,这是性能和容量的另一个潜在瓶颈。如果您只是从系统中读取数据,那么水平扩展应该很容易。如果有读写操作,通常最好将读写数据集分离到一个单独的数据库中,并将只读数据集放在另一个数据库中。然后,您可以使用更相关的方法进行扩展。

于 2012-06-21T09:29:05.557 回答
0

这些设置不会吐出一个答案,然后您可以相互比较。答案会因您列出的因素更多而有所不同。

即使他们确实吐出了一个答案,那也只是几十个指标中的一个。是什么使它成为最重要的指标?

更糟糕的是,这些替代方案中的每一个都不是免费的。其中每一项都存在工程工作和维护开销。如果不了解您的组织、您的应用程序和您的成本/收入结构,就无法对其进行分析。

像 AWS 这样的选项不仅涉及开发工作,而且可能会将您“锁定”在解决方案中,因此您还需要注意这一点。

我知道这个回答并不完整,但我指出这个问题涉及一个无法简化为单一指标的大而复杂的领域。

我怀疑你是从完全错误的角度来处理这个问题的。不要去寻找技术,然后弄清楚如何使用它们。而是分析您的应用程序(测量、测量、测量),找出您遇到的实际问题,然后只解决那个问题和那个问题。

如果您了解问题并了解技术选项,那么您应该有答案。

如果您已经这样做并且问题是并发页面请求,那么我提前道歉,但我怀疑不是。

于 2012-06-21T03:49:13.560 回答