Как Yahoo оптимизирует работу своих серверов
30 января 2006 года
В документе "Hacking Apache HTTP Server at Yahoo!" ( PDF версия) рассказывается как организована работа Apache на серверах работающих под управлением FreeBSD и Linux в Yahoo, какие действия предпринимаются для того чтобы выжать максимальную производительность.
Во второй презентации "HTTP Caching and Cache-busting for Content Publishers" ( PDF версия) говорится об используемых в Yahoo технологиях кэширования динамического и статического контента.
В 2002 году Yahoo перешла на использование PHP в качестве основного языка для web-разработки, в обзоре "PHP at Yahoo!" показано как удалось вписать PHP в инфраструктуру Yahoo и почему был выбран именно PHP. Основная дилемма была mod_php или mod_perl, по производительности при большой нагрузке mod_perl выигрывал, но требовал для работы больше памяти.
На сайте Игоря Сысоева можно найти интересный комментарий, по вопросу оптимизации через увеличение буфера сокета во FreeBSD, позволю себе процитировать текст:
"Время общения 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 это окно приходится разгонять каждый раз заново."
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.