日益增长的网站负载能力

我的网站目前运行在一个专用的Web服务器(LiteSpeed)和专用的MySQL数据库服务器上。 这是一个基于下载的网站,有很多用户生成的内容,可以stream式传输和下载,还有成千上万的缩略图和静态内容。

我正处于Web服务器无法处理stream量的阶段,所以我正在考虑考虑大量的可下载内容,如何提高容量。

我的主机build议在第二台Web服务器上镜像所有内容,并使用DNS Made Easy在它们之间分配负载,或者在两个Web服务器前面使用自己的负载平衡器(使用ldirector)。

任何人都可以build议上述方法是否是最好的select? 是否有任何人使用DNS Made Easy和/或ldirector的经验?

我会很感激任何帮助。

首先,您必须先了解瓶颈所在的位置,然后才能取得进展。

主机快速推荐新的硬件,但在很多情况下,除非明确硬件限制,否则新的硬件可能不会产生显着的改进。

如果没有巧妙完成,添加硬件的收益递减。 从一台服务器到两台服务器可能会使您的资源增加一倍,但是您需要从2-> 4,4-> 8才能获得相同的缓冲区。

监视和测量

如果您不监视系统指标,加载时间和其他数据,那么这是首先启动的地方。 像Munin和systat这样的免费工具在服务器解决scheme上非常出色。 像http://Browsermob.com和http://webpagetest.org这样的工具可以为您提供以用户为中心的指标。

细分stream量

通常情况下,复杂媒体站点到另一台服务器的直接端口不是非常有效。 通常情况下,您将通过细分stream量来获得优质的投资回报。

例如,我们有一个非常繁忙的Flash游戏网站(每天点击数百万次)的客户端。 我们已经将Flash游戏卸载到运行Nginx的廉价服务器池中。 这些系统推动结核病的stream量/月份。 这些是入门级的盒子,他们所提供的都是静态内容。

现在在成本方面,这两个入口盒比主服务器便宜20%。 我们获得了超过4倍的容量提升。 如果我们刚刚克隆了主服务器和负载均衡,那么我认为最好的改进是1.5-1.8倍。

简而言之,在了解绩效问题的内容的同时,可以为你节省很多钱。

DNS轻松

这是一个DNS解决scheme,并没有真正解决负载平衡问题。 他们可能正在谈论循环赛DNS。 不太清楚为什么在这个阶段将这个问题带入了这个方程式。

Ldirector

这是pipe理LVS群集中的节点的工具。 再次不确定乳清这个具体的项目build议。 通常我们只使用一个负载平衡器(硬件或Nginx / HA-Proxy之类的东西)并将stream量路由到适当的后端服务器。

基于DNS的负载平衡不是很好,原因如下:

  1. 您可以控制如何访问您的服务器,并且不能在两台服务器之间以不同或均匀的方式分配stream量。
  2. 更重要的是,这种负载均衡方式无法识别服务器故障。 所以,如果其中一台服务器出现意外故障,您将丢失部分stream量。
  3. DNScaching使其更糟。

我更喜欢使用更智能的负载平衡技术,如ldirectorhaproxy 。 这种types的负载平衡使您能够根据服务器规格分配stream量,并使用多种因素(负载,连接数等)。

还有一件更重要的事情需要注意。 你说你有一个MySQL数据库和服务器上的用户内容。 如果要在两台服务器之间分配stream量,则需要在两台服务器之间build立同步机制。 否则,用户每次访问不同的服务器时都不会看到相同的数据。