2

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

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

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

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

这是我的设置:

- Apache 2
- PHP 5.1.6
- MySQL 5.5

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

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

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

谢谢

4

2 回答 2

1

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

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

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

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

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

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

因此,假设您有一个带有评论的页面,获取内容(元、h1、p 等)和评论并将两者保存到文件中。

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

于 2013-09-27T20:24:52.823 回答
0

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

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

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

您需要以下内容:

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

在此处查看详细信息:

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

在此处输入图像描述

(图片来源)

另一个例子

在此处输入图像描述

有很多可用的工具:

在此处查看列表

于 2013-09-24T19:47:32.543 回答