您使用了哪些方法和技术来成功解决网站的可扩展性和性能问题?我是一个ASP.NET Web开发人员,使用带有SQL集群的WCF探索.NET远程处理,并且对于存在其他方法(例如“云”)感到好奇。在哪些情况下,您会应用各种方法(例如,大约x个“活跃”用户的方法a。)
我的意思的一个例子,一个myspace案例研究:http://highscalability.com/myspace-architecture
答案 0 :(得分:15)
这是一个非常广泛的问题,很难回答,但我会尝试提供一些一般性的建议。
1 - 除非你做了一些严重错误的事情,否则在你达到大量流量(每月超过100万的页面浏览量)之前,你可能不需要担心性能或规模。
2 - 您最初遇到的最大性能问题可能是来自其他国家/地区的页面加载时间。试试Gomez Instance Site Test查看来自世界各地的页面加载时间,并使用YSlow作为优化指南。
3 - 当您开始遇到性能问题时,首先很可能是由于数据库工作。使用SQL Server Profiler检查SQL流量,查找长时间运行的查询以尝试优化,并使用dm_db_missing_index_details
查找应添加的索引。
4 - 如果您的Web服务器开始成为性能瓶颈,请使用分析器(例如ANTS Profiler)来寻找优化网页代码的方法。
5 - 如果您的Web服务器经过优化并且仍然运行得太热,请寻找更多缓存机会,但您可能只需要添加更多Web服务器。
6 - 如果您的数据库经过优化并且仍然运行得太热,那么请查看添加分布式缓存系统。这可能不会发生,直到你每个月的页面浏览量超过1000万。
7 - 如果您的数据库即使使用分布式缓存也开始不堪重负,那么请查看分片架构。这可能不会发生,直到你每个月的页面浏览量超过1亿。
答案 1 :(得分:8)
我曾在几个网站上工作,每月可获得数百万次点击率。以下是一些基础知识:
我建议阅读Building Scalable Websites,它是由Flickr工程师之一编写的,是一个很好的参考。
查看我关于可扩展性的博文,它有很多关于使用多种语言和平台进行扩展的演示文稿的链接: http://www.ryandoherty.net/2008/07/13/unicorns-and-scalability/
答案 2 :(得分:1)
来自MS的velocity以及MEMCache现在有一个到.NET的端口,还有indeXus.Net