我的网站目前运行在一个专用的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解决scheme,并没有真正解决负载平衡问题。 他们可能正在谈论循环赛DNS。 不太清楚为什么在这个阶段将这个问题带入了这个方程式。
这是pipe理LVS群集中的节点的工具。 再次不确定乳清这个具体的项目build议。 通常我们只使用一个负载平衡器(硬件或Nginx / HA-Proxy之类的东西)并将stream量路由到适当的后端服务器。
基于DNS的负载平衡不是很好,原因如下:
我更喜欢使用更智能的负载平衡技术,如ldirector或haproxy 。 这种types的负载平衡使您能够根据服务器规格分配stream量,并使用多种因素(负载,连接数等)。
还有一件更重要的事情需要注意。 你说你有一个MySQL数据库和服务器上的用户内容。 如果要在两台服务器之间分配stream量,则需要在两台服务器之间build立同步机制。 否则,用户每次访问不同的服务器时都不会看到相同的数据。