共享主机上的快速交付网页

时间:2013-09-20 19:42:28

标签: performance optimization lamp response-time

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

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

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

我想确保我的网站会为所有人快速加载,因为它没有赚到钱我真的无法将它移动到私人服务器。 (这是志愿者工作)。

这是我的设置:

- Apache 2
- PHP 5.1.6
- MySQL 5.5

我有10页PER状态,在每个页面上,人们可以贡献,写文章,喜欢,分享等等...在几个页面上,我可以在午餐时间每小时达到10,000次,其余时间安静。 / p>

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

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

由于

2 个答案:

答案 0 :(得分:1)

说实话,你在共享主机上做的并不多。这就是他们便宜的原因......他们限制你去做你想做的事情。

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

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

例如hostmysite.com的优惠券:50OffForLife你每个月可以支付20美元的生活费用...而不是5美元的共享主机......

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

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

因此,假设您有一个包含注释的页面,抓取内容(meta,h1,p等等)和注释并将其保存到文件中。

示例:(使用.htaccess - 根据您的回答,您对此很熟悉)

/topic/1/

如果文件存在,那么只需回显... 如果没有:

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将非常快,因为您不必调用任何数据库。它只是在文件生成后加载它。

答案 1 :(得分:0)

我知道我正在踩着不稳定的地面提供这个问题的答案,但我认为这是非常有说服力的。

Pat R Ellery没有提供足够的细节来做任何评估,但那里的好消息不够详细。解释很简单:任何人都可以根据自己的意愿构建尽可能多的心智模型,但实际系统的表现总会有所不同。

所以帕特,尽可能多地测试你的系统。您要做的是计划解决方案的容量。

您需要以下内容:

  • 容量测试 - 确定给定系统支持的用户和/或交易数量,并且仍能达到效果目标。
  • 压力测试 - 确定或验证应用程序在超出正常或峰值负载条件时的行为。
  • 负载测试 - 验证正常和峰值负载条件下的应用程序行为。
  • 性能测试 - 确定或验证速度,可伸缩性和/或稳定性。

详情请见:

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

enter image description here

(image source)

另一个example

enter image description here

有很多可用的工具:

请参阅列表here