1

我开发了一个基于WAMP(Windows、Apache、MySQL、PHP)服务器的社交网络网站。我把它放在免费主机上(主机在 LAMP 中提供服务),它工作正常。

现在,我研究了一下,发现 PHP 应用程序很难扩展,并且需要大量的并行算法。我想测试一下我的网站的虚拟主机支持多少用户,我的本地主机支持多少用户。

这是一个和其他任何社交网络一样的社交网络,包括:

  • 在主页上发布数据(带图像)。
  • 用户之间的聊天(每 3 秒轮询一次,在 facebook 中视为一次)。
  • 一个问答论坛(就像这个论坛一样,或者雅虎的回答——包括赞成票、反对票、积分等)
  • 两个 HTML5 服务器发送的事件循环无限运行。
  • 许多 AJAX 请求从 MySQL 数据库中检索数据。

至于现在,我还没有应用任何缓存选项,我计划稍后再做。此外,聊天应用程序必须从 Polling 切换到 Websockets(HTML5)。

我估计的用户数据库将超过 100,000 个用户。这可能需要一些严格的可扩展性。

我需要知道我可能需要什么样的服务器。它应该是一个专用服务器,应该是 2 个或更多?

我试过这个位于 Apache 的 bin 文件夹中的 ab.exe,但它会测试我们手动提供的位置。社交网络需要登录信息才能访问所有数据,不幸的是,这将 ab.exe 的功能限制为“欢迎”页面的可用性,而与我上面提到的 AJAX 和 HTML5 功能无关。

那么,对于与我的笔记本电脑(Windows、Intel i5、4gb Ram、2.0 GHz)相同的硬件,我应该如何测试网站的可扩展性,以及可用的共享服务器甚至专用服务器的可扩展性如何。

4

2 回答 2

4

简而言之:您在孵化之前数数您的鸡。如果你被一堆新用户弄得不知所措,那么这就是我们通常所说的“好问题”。如果您担心一路上的可扩展性,那么您应该研究:

  1. 使用MemcachedRedis进行缓存。
  2. 负载均衡
  3. Apache 切换到 Nginx
  4. 提供适当的CDN
  5. 由于您使用的是 PHP,因此您应该安装一个opcache

有很多不同的方法可以挤出结果。在您需要它们之前,我建议您坚持最佳实践(规范化等)。

于 2013-10-19T22:20:34.000 回答
0

如果您担心托管公司处理您的应用程序的能力,那么要做的第一件事就是联系他们并讨论他们可用的能力以及他们的环境的可扩展性。

除非您自己托管,否则您几乎无法控制情况。

但是,如果您认为用户数量将快速增长,那么尽早与您的提供商进行对话将是明智之举。

于 2013-10-20T02:05:09.483 回答