【问题标题】:How to test PHP social networking scalability如何测试 PHP 社交网络的可扩展性
【发布时间】:2013-10-28 14:21:43
【问题描述】:

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

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

这是一个与其他任何社交网络一样的社交网络,涉及:

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

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

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

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

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

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

【问题讨论】:

  • 您不会在一夜之间获得 10 万用户。一旦您在网站上找到真实的人,您将能够更好地了解瓶颈。恕我直言,请等到您真正需要扩展后再进行扩展。
  • 使用Gatling之类的破坏测试
  • @Sam Dufel - 只是想计划我的出路。我不希望网站服务器崩溃并陷入困境,每秒都失去用户。另外,它是针对特定人群的,是同类中的一员。它可能需要比平时更早的可扩展性选项。
  • 您的开发机器上的页面响应时间是多少?不要为此使用共享主机,请使用 VPS 或云。

标签: php mysql apache scalability


【解决方案1】:

简单地说:您是在孵化之前数数您的鸡。如果你被一堆新用户弄得不知所措,那么这就是我们通常所说的“好问题”。如果您一直担心scalability,那么您应该调查一下:

  1. 使用MemcachedRedis 进行缓存。
  2. Load balancing
  3. Apache to Nginx 切换。
  4. 提供正确的CDN
  5. 由于您使用的是 PHP,您应该安装一个 opcache

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

【讨论】:

  • 我可以在 Apache 上使用没有 Memcached 的共享服务器吗?我实际上会支付至少 3 个月的试用费用。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多