昨日认识了位健谈的IT人,原在verycd作系统管理的叶宁(这哥们现飘泊去见首都人民了).
以前sweater给我介绍的他写的《大型高负载网站架构和应用初探》, 他总结了很多信息和数据,感谢叶宁的辛劳成果. 这里我也想就此PPT写些自己的感想.
老牌的互联网公司,如Yahoo! ,网易等因成长和壮大的时间曲线较长,所以你可以看到多数采取的方式是以频道或项目来分割开, 避免站点臃肿到不可控制. 基本的架构方式为:
前层的反向代理加速—Web Server—Cache Server—DB
而负载均衡的方式也使用了如DNS轮循或部分硬件负载均衡设备来承担大流量.
叶宁在ppt第一部分提到了性能更好的 Web服务器, 世面上Web Server“品种繁多”,挑选适合自己的尤其重要. 一般的Web Server多是在User Layer, 但在RedHat 9.0时我也使用了TUX(kernel Layer层面上Web Server). 页高速缓冲存储器通过DMA方式将置换数据直接传导网络,实现了零拷贝的操作. 对小字节数据块静态操作,有着非常优良的体验; but, 如果崩溃的话,呵呵 这后果也是….
注: DMA的方式因为减少了CPU的参与, 而且DMA池应用于Cache System也是可行的,RedHat为TUX也在往能使用减少User Layer参与的情况下, 尽量让其在User Layer 守护, 我想这个思路是可以应用与除了web server以外的应用上.
除了一些商业的Web Server性能不错的外, 有些做Web 加速和代理的软件我们也放在一起介绍,
如Lighttpd, Nginx,HAproxy.
这三个应该是现在应用最多的前层软件, Lighttpd使用比较著名的例子如Flickr, tudou.com
Nginx 业内站点如sina, 51.com 等都是应用它的.
ppt第二部分提到的是缓存系统. 我在这里也说下自己的意见:
Linux在kernel 2.5后就将/dev/shm与tmpfs使用了同个struct 结构. 在以前很多文章中我都看到要用shm来做cache存储的地方,但问题是没有仔细考虑过机器的内存大小,使用内存情况,且也没有能限制shm被做为cache使用的大小限制! 我更推荐使用memcached和对PHP优化上.
最后提下负载均衡环境, 在提供Web应用的站点中使用的方式是和¥挂钩的, 如LVS, HAProxy, 加上Linux-HA项目, 完全能撑起千万的流量.
另一种就是使用硬件设备, 如F5 BigIP, NetSclaer设备.
当然Web 2.0的公司提倡DIY的精神也未尝不可,一台1U的IA32硬件设备, 板子需要是为fw,switch设计的, 使用FreeBSD操作系统, 主要是FS和slab的改写会是技术活 .
后继 ing
说的很有道理的
thx, 之后会详细写细节的.
比如web apache优化, HA Project
Thank you for sharing!
不错!虽然ppt各章节内容略显淡单薄,但描述的技术点都‘针针见血’。