В документе "Hacking Apache HTTP Server at Yahoo! (http://public.yahoo.com/~radwin/talks/yapache-apachecon2005.htm)" (PDF версия (http://public.yahoo.com/~radwin/talks/yapache-apachecon2005.pdf)) рассказывается как организована работа Apache на серверах работающих под управлением FreeBSD и Linux в Yahoo, какие действия предпринимаются для того чтобы выжать максимальную производительность.
Во второй презентации "HTTP Caching and Cache-busting for Content Publishers (http://public.yahoo.com/~radwin/talks/http-caching-apachecon2005.htm)" (PDF версия (http://public.yahoo.com/~radwin/talks/http-caching-apachecon2005.pdf)) говориться об используемых в Yahoo технологиях кэширования динамического и статического контента.
В 2002 году Yahoo перешла на использование PHP в качестве основного языка для web-разработки, в обзоре "PHP at Yahoo! (http://public.yahoo.com/~radwin/talks/php-at-yahoo-zend2005.pdf)" показано как удалось вписать PHP в инфраструктуру Yahoo и почему был выбран именно PHP. Основная дилемма была mon_php или mod_perl, по производительности при большой нагрузке mod_perl выигрывал, но требовал для работы больше памяти.
На сайте Игоря Сысоева можно найти (http://www.sysoev.ru/#13.01.2006) интересный комментарий, по вопросу оптимизации через увеличение буфера сокета во FreeBSD, позволю себе процитировать текст:
"<small>Время общения Apache с клиентом сведено к минимуму — ровно для того, чтобы скопировать запрос и ответ: сначала запрос клиента полностью принимается accept-фильтром httpready, а затем весь ответ записывается в огромный, 224K, буфер сокета, после чего сокет сразу же закрывается (-DNO_LINGCLOSE). У этого метода есть и преимущества, и недостатки. Один из недостатков — суммарный объём данных, который можно использовать под буфера сокетов (mbuf clusters) около 360M, по крайней мере, во FreeBSD/i386 4.x с адресным пространством ядра в 1G. Это означает, что при среднем размере ответа в 50K одна машина может обслуживать примерно до 7,000 одновременных соединений. Впрочем, во FreeBSD 6.0 и на amd64 этот объём должен быть больше. Кроме того, адресное пространство ядра может увеличить до 2G или даже до 3G. Одно из преимуществ — возможность быстро отдавать в большое TCP window клиента, но, с другой стороны, без keep-alive это окно приходится разгонять каждый раз заново.</small>"
URL: http://public.yahoo.com/~radwin/talks/yapache-apachecon2005.htm
Новость: http://www.opennet.me/opennews/art.shtml?num=6887