【问题标题】:Fast delivery webpages on shared hosting共享主机上的快速交付网页
【发布时间】:2013-09-26 07:21:17
【问题描述】:

我有一个网站 (.org),用于我在 LAMP 上的一个项目,该项目托管在一个共享计划上。

它开始时非常小,但现在我将这个社区扩展到其他州(在美国)并且发展迅速。

我每天(大约 4 个月前)有 30,000(左右)次访问,我的网站运行良好,今天我达到了 100,000 次访问。

我想确保我的网站能够为所有人快速加载,而且由于它不赚钱,我无法真正将它转移到私人服务器上。 (这是志愿者工作)。

这是我的设置:

- Apache 2
- PHP 5.1.6
- MySQL 5.5

每个州有 10 页,人们可以在每一页上贡献、撰写文章、点赞、分享等……在几页上,我可以在午餐时间每小时达到 10,000 篇,而其余时间则很安静。

所有数据库均已正确设置(我亲自花钱请了一位 DBA 专家来构建代码)。我很确定代码也很好。现在,如果我使用 memcached,我可以使页面更快,但问题是我无法使用它,因为我在共享主机上。

MySQL 能否支持这么多人,每分钟处理大量请求?或者我应该创建一个基金来转移到私人服务器并安装我需要的所有工具来加快速度?

谢谢

【问题讨论】:

  • 这不是 SO 的话题,但是问 MySQL 是否可以支持 X 数量的人是没有意义的 --- 许多使用 MySQL 的网站使用 MySQL,包括 Wikipedia(至少在之前它切换到 MariaDB)。您的设置能否处理负载取决于其他因素。
  • @Juhana 谢谢,我只是想确定...我没心情重做所有事情

标签: performance optimization lamp response-time


【解决方案1】:

说实话,您在共享主机上无能为力。它们便宜是有原因的……它们限制了你做你想做的事情。

您要么转移到允许 memcache(更便宜)的 VPS 并放置一些谷歌广告,要么继续使用预先生成的内容系统进行共享主机。

VPS 可能非常便宜(寻找优惠券),而且你可以安装任何你想要的东西,因为你是 root。

例如,带有优惠券的 hostmysite.com:50OffForLife,您每月支付 20 美元的终身费用……与 5 美元的共享主机相比……

如果您想保留当前托管,那么您可以这样做:

页面是由一个进程(cronjob 或动态)生成的,每次有人写评论或进行更新。此过程启动并获取页面上的所有数据并将其保存到网页。

假设您有一个包含 cmets 的页面,获取内容(meta、h1、p 等)和 cmets 并将两者保存到文件中。

示例:(使用 .htaccess - 根据您熟悉的答案)

/topic/1/

如果文件存在,则只需 echo ... 如果没有:

select * from pages where page_id = 1;
select * from comments where page_id = 1;
file_put_contents('/my/public_html/topic/1/index.html', $content);

或者类似的东西。

因此,保存静态 HTML 会非常快,因为您不必调用任何数据库。它只是在文件生成后加载。

【讨论】:

    【解决方案2】:

    我知道我正在为这个问题提供答案,但我认为这是非常具有指示性的。

    Pat R Ellery 没有提供足够的细节来进行任何类型的评估,但好消息是没有足够的细节。解释很简单:任何人都可以构建任意数量的心智模型,但实际系统的行为总是会有所不同。

    所以,Pat,请尽可能多地测试您的系统。您要做的是规划解决方案的容量。

    您需要以下内容:

    • 容量测试 - 确定给定系统将支持多少用户和/或交易并仍能满足性能目标。
    • 压力测试 - 确定或验证应用程序在超出正常或峰值负载条件时的行为。
    • 负载测试 - 验证应用在正常和峰值负载条件下的行为。
    • 性能测试 - 确定或验证速度、可扩展性和/或稳定性。

    在此处查看详细信息:

    换句话说(有点原始):如果您想知道您的系统能够处理每个 time_period 的 N 个请求,请模拟每个 time_period 的 N 个请求并查看结果。

    (image source)

    另一个example

    有很多可用的工具:

    查看列表here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 2011-04-20
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      相关资源
      最近更新 更多