作为世界上 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)。 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 结构一瞥.
--EOF--
要评估自己的性格,请看看以下的图片,并选出你最喜爱的一张(请同时考虑形状和颜色)。
然后根据编号查看你对应的类型。和周围几个同事一起做了一下:还挺准的哎……
个性类型说明附后:
For those of us who rely on and love Bloglines Mobile while on the go, here's another reason to dig it. Bloglines has now integrated Skweezer technology to optimize web pages for your personal handheld mobile device's viewing pleasure.
When you click on a link while reading a blog post in Bloglines Mobile, Skweezer will compress and reformat the content so you get it faster and better looking on your small screen. As you surf, the content will continue to be skweezed. Hints & bonus features:
So if you've been wary of venturing beyond your Bloglines Mobile on your fancy new Blackberry (or Treo or other smartphone), free yourself from those inhibitions and click away!
- The Bloglines Team
作者:窦窦 搜索编辑
4.海上日出
清晨四点半,空气清新凉爽,到达时,天边已经是一片红霞,万幸,太阳还没有出来。盯着天边等待,感觉焦急而兴奋,但时间久了,也容易让人疲劳。思想开个小差,四下张望。海水退的很远,露出大片沙滩,不远的海面上,几条渔船缓缓移动。注目远眺,海天相接一片沧桑的红色,让人有些分不出是清晨还是傍晚,沧海桑田,千年岁月回转,天上人间,多少豪情不变……
“出来了!!”正在我胡思乱想的时候,一个声音激动的有些颤抖。其实事情就是这样的,向电影里说的一样:当一个人在某一刻抬起头的时候就会……就会望见她。每天清晨海滩上都有数以百计的人,却总会有一个人,就一个人,首先望见她。第一个望见太阳的人。每天都有这样一个人。别以为这是件偶然的事,不是的,那是没有任何因果关系的事实,是命运。也许那一刻,在这些人的生命中早就烙上了印记……
太阳是跳出海平面的,一切只用了一瞬间。
5.翡翠岛——拔河、足球、日光浴
翡翠岛的行程有两大主题:拔河、沙滩足球。
拔河
比赛的激烈超出了大家的想象,所有比赛的胜负,最终都是以一个队摔倒在沙滩上被对手拖过线而告终,没有一个队中途放弃,没有一个人不竭尽全力。所以,拔河比赛,每一个人都是胜利者。
沙滩足球
如果说拔河比拼的是团结的意志,那么沙滩足球更注重的是技术的较量。比赛不但激烈,而且精彩。最后以点球定胜负。在各主力队员相继罚失点球后,演化成了女队员之间的射门比赛,最终,以一位女将的一脚刁钻射门,决出了胜负。脚下的沙是烫的,胸中的心是火热的。
比赛结束之后,疲惫的人们,各自调整休息。我仰面躺在沙滩滩上,沐浴着阳光,看着满眼的蓝天白云。很喜欢这种满眼都是天空的姿势,恍惚间有了飞翔的感觉,平静、心无杂念。
中午时分,集合,合影,离开海滩。沙子真的很烫,大家都是三步并作两步、一路小跑上了汽车。丰盛的午餐之后,稍作休整,踏上了回程的大巴。
6.回来了,我们重新上路
可能是两天的活动安排太过紧凑,回程的车厢里显得格外安静。当大巴车又停在公司楼下的时候,我们的旅行画上了完美的句号。
这两天里发生的一幕幕像是电影画面一样不停的在我脑子里转动,不知道自己到底是什么心境,是遗憾?留恋?好像都不是。心里出奇的安静。这是一个温暖但并不炎热的午后,暖风时而吹过,轻柔舒缓,在我眼里似乎整个城市都改变了它曾经忙碌的印象。
走回公司,坐在自己的办公桌前,有了一种回家的幸福感。渐渐觉得,我们不单是去旅行,而是到海边去洗涤心灵,所有从前的紧张和烦躁都被快乐冲刷的无影无踪,当重新回到属于我的世界,面对工作和生活,我的心变得更加坚强,充满了力量。
搜索工作,是一条漫长的路,可以说是“道阻且长”,这次南戴河旅行是这条漫漫长路上一站小小的休憩,既然已经精神饱满,那就让我们重新上路。
This latest release of Google Spreadsheets that we just rolled out does all of these things and more. Here's a list of all the new features. I'm still watching the list of requests grow – and will keep trying to meet those needs -- unless of course the mysterious "Fuzzy wuzzy" beats me to it.