作者: Fenng
|
可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.dbanotes.net/web/yapache_yahoo_apache.html
作为世界上 NO.1 的 Web 站点,Yahoo!
的 Web 服务器
定有独到之处. 这也应该是很多 Web 技术人员关心的一个问题。
前一段时间, Yahoo! 架构软件组的技术经理 Michael J. Radwin
在 OSCON 2006 上作了一个题目为 Hacking Apache HTTP Server at Yahoo!
的报告,透露了很多关于 Yahoo! Apache 的技术信息。
Yahoo! Apache = Yapache , 这是雅虎内部使用的名字吧。发音是(why·apache)(注:根据下面的留言,读音应为[ya`pache])
。 YApache 是基于 Apache 1.3 进行 hack 的,目前在向 Apache 2.2 迁移(Prefork Multi-Processing Module ?)。 Michael 介绍说构建 YApache 的原因有三个:
1) 安全性;
2) 节省带宽;
3) NETSCAPE GUIDE BY YAHOO
--
这是 97 年的时候 Yahoo! 与 Netscape 联合推出的 一个互联网信息与导航服务,需要用到富媒体内容,当时的 Apache
对这样的内容支持较弱,所以雅虎不得不动手改造 Apache (要知道97 年的时候 Netscape 就好比现在的 Google
啊)。据说这才是主要原因。
Apache 1.3 的功能对雅虎来说已经够用 (在 98 年对 yapache 添加了 gzip 的支持),所以这个版本一致用到现在。YApache 的一个倾向性的原则是用进程而不用线程
,相对比较保守,不过这样选择的原因也是很明显的:进程更加稳定,线程对与程序员来说,更容易引入新的问题。
接下来 PPT
描述了一些关于 LOG
格式的内容,继续看下去,我感兴趣的是关于配置参数 StartServers / MaxSpareServers /
MinSpareServers / MaxClients 的问题。很多 Web 技术人员往往要在这个地方反复推敲。YApache 一般只设置 MaxClients
,这个值一般小于 100, 对于 99% 的站点是足够用了。尽量让系统(Yahoo! BSD) Kernel 来处理 Buffer, 在这个地方关于 几个 kernel 参数的设置很有讲究。
关于SSL 的部分我不太感兴趣,倒是最后的 ysar (Yahoo! sar) 看起来是一个有趣的工具.
这样的定制对于 Yahoo! 这样需要大量 Web 服务器的站点来说(现在平均每天接近 40 亿 的 PV),得到的收益无疑是巨大的。对于规模相对较小的 Web 2.0 站点,类似 LightTPD 这样的轻量级 Web 服务器更为适合(比如豆瓣
):
$ curl -I www.douban.com
HTTP
/1.1 200 OK
Connection: close
Status: 200 OK
Content-Length: 13213
Content-Type: text/html; charset=utf-8
Set-Cookie: dbcl2="MPmAySb0OYE::"; path=/; domain=douban.com; \
expires=Thu, 01-Jan-2009 00:00:00 GMT
Date: Fri, 22 Sep 2006 12:34:16 GMT
Expires: -1
Server: lighttpd/1.4.11
(那些盯着豆瓣页面看的模仿者,很少有人留心豆瓣的运维技术吧)
在线查看这个PPT: Hacking Apache HTTP Server at Yahoo!
(PDF
Version) (其实这个文档和 05 年的内容基本上是一致的)。
附图:
Yahoo! Web 结构一瞥.
分享到:
相关推荐
开发的基于Apache1.3开发的Yapache,有时候甚至梦想自己开发个基于Apcahe的服务器软件,下面我来简单的说下这本书吧! 首先,这本书的读者对象是web开发人员的,要有一定的C基础。我这里所说的web开发人员不是指刚...
开源软件遵循特定的许可证,例如GPL、MIT或Apache等,确保了软件的开放性和合规性。Y!Go选择开源,意味着它不仅提供了基础的即时通讯功能,还为开发者提供了参与和改进项目的机会。 Y!Go作为手机信使,其核心功能...
MSN 、雅虎通和 GTALK ;与谷歌日历同步;与 Android Market 联机;支持谷歌 “ 街景 ” 服务;包装盒内附 数据工具包。 更多信息 https://sites.google.com/a/android.com/opensource/release-features Android ...
-- List of regexpressions describing the interface (if any) that represent tetherable Wifi interfaces. If the device doesn't want to support tethering over Wifi this should be empty. An example ...
后来,Hadoop 被贡献给了 Apache 基金会,成为 Apache 基金会的开源项目。 Hadoop 是一种分析和处理大数据的软件平台,是一个用 Java 语言实现的 Apache 的开源软件框架,在大量计算机组成的集群中实现了对海量数据...
Kafka-Manager 是一款用于管理和监控 Apache Kafka 集群的强大工具。它提供了直观的 Web 界面,便于用户对 Kafka 集群进行管理和维护,如创建主题、调整分区数量等操作。本文档将详细介绍 Kafka-Manager 的安装步骤...
Computer Networking: A Top-Down Approach, 6th Edition Solutions to Review Questions and Problems Version Date: May 2012 ...This document contains the solutions to review questions and problems for...
图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...
Hadoop是一个开源的分布式存储与计算平台,它源自于Apache软件基金会。Hadoop最初是为了解决大规模数据集的存储与计算问题而设计的。它的设计理念是通过普通的商用硬件来提供高可靠性、高扩展性的大数据处理能力。...
或者,可以使用第三方库如Apache Commons CSV或OpenCSV,它们提供了更高级的功能,如错误处理和解析。 3. 数据处理: - 读取的数据需要转换为适合绘制的格式。这可能涉及创建一个类来表示每个烛台,包含开盘价、...