大概MySpace是世界级大站中使用Microsoft DotNet平台的独苗,凭借Asp.Net和SQL Server竟然撑起来亿万用户,这一点估计Microsoft也没有想到吧!
MySapce架构的变化大都发生在2004年和2005年早期,这期间用户数从几十万迅速攀升到几百万,在账户数超过700万后,架构相对稳定,下面看看MySpace在那两年间干了些什么?
1、小于50万账户
这期间可以算是MySpace的第一代架构,使用3台服务器:
2 Web Server + 1 Database Server,使用Dell 2 CPU + 4G Memory
随着用户的增多,不断通过增加Web服务器来解决性能问题。
2、50万账户
时间是2004年早期,此时的数据库服务器性能到达极限了,咋办?优化索引和优化查询之类的方法已经用不上了,这些技术早就在建站之初就用到极致,而
数据库的横向扩展性可没有Web服务器那么简单,不只是动动配置那么简单,修改源代码是不可避免的事情。此时新增2台数据库服务器,一台为Master,其他2台为Slave,Master负责所有的Insert\Update\Delete,然后同步到其他2台Slave,Slave负责Select,剩下的事是不断增加数据库服务器,增大硬盘。
3、100万-200万账户
数据库服务器遭遇I/O瓶颈,这一次的策略是采用数据库架构垂直分割的办法,按照Blog\Login等功能进行分割,似乎又顶过了一阵。
并且在账户数超过200万之后,还采用了SAN。
4、300万账户
此时,数据库垂直分割的策略也似乎无能为力了,尽管每一块的应用已经尽可能分割,但总有些数据是必须共享的,另一方面个别应用也增长的很快,比如Blog很快超过了之前整个站点的访问量。
最终,相其他巨型站一样,MySpace走上了分布式计算架构的道路。
5、900万-1700万账户
在账户达到1000万时,存储瓶颈再次关顾MySpace,这次不得不采用了虚拟存储体系。
到账户超过1700万的时候,MySpace在Web服务器和数据库服务器之间增加了数据缓存区。
6、2600万账户
升级到SQL Server 2005,将服务器内存升至32G。
那么对于可靠性能,MySpace有两个后备站点,主数据中心接入两张不同的电网,外加后备电源和一台储备1个月燃料发电机。