gee*_*lin 2 hosting cluster load-balancing
我的任务是确定一个网站的基础设施要求,该网站每月将吸引超过 1000 万的独立访问者。该站点将在大小内容方面进行几次演出。我马上就知道所有交互式内容都将放在 CDN 上,但是后端呢?该站点还将附加一个 CMS,这意味着任何双服务器设置都需要集群,我猜也是负载平衡的。只是想要你可能有的任何建议。
添加更多细节。我们很可能会使用 webmux 负载均衡器。
遗憾的是,在上线之前您不知道要修复什么。如果没有一些数据来支持你的决定,就很难把钱放在正确的地方。我会推荐容量规划的艺术,以了解您应该做什么来规划您的容量。但一般规则是监控一切。你想要丰富的图表。如果您看不到问题出在哪里,您就没有机会修复它。不要将监控留到最后一分钟。了解您的网站目前的表现以及它在过去一天、一个月或一年中的表现是多么重要,我再怎么强调也不为过。我们使用 munin 进行绘图,因为它可以非常快速地启动和运行。其他人使用 Ganglia 和 Cacti 效果很好。
但是,您可以采取多种措施来提高生存机会。
1)复制一切。很多。您希望能够在出现问题的地方添加更多硬件。您不想购买更大的硬件来替换速度太慢的硬件。查看负载平衡您的应用程序服务器。看看使用主/从数据库设置,其中读取来自您的从站,而写入则是对您的主站进行。您说过您将大部分媒体存储在 CDN 上。好的。
2) 避免在数据库中存储任何瞬态的东西。数据库对于临时数据来说太慢了,您希望它们服务于其他请求。
3) 尽可能避免服务器端状态。使用服务器端状态,您将不得不在 Web 服务器之间进行某种共享会话复制,从而限制您添加更多硬件的能力,或者您将需要使用粘性会话,这将起作用,但可能导致负载不均匀和会话死亡如果你的服务器死了。
4)缓存一切。使用 memcached 在数据库和应用程序之间缓存数据。如果您存储作为多个查询结果的数据,它会更有效。在 Web 层前面使用缓存。类似于 apache 的 mod_cache 或反向代理模式下的鱿鱼。
5) 介绍您的网站。找出它慢的地方。
6) 配置您的 html。用户感知到的网络缓慢的很大一部分是在前端。高性能网站有很多有用的技术。来自 Yahoo 的 YSlow firefox 扩展也很有用。
我可以推荐 Building Scalable Web Sites和High Scalability博客。
归档时间: |
|
查看次数: |
445 次 |
最近记录: |