The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Как Yahoo оптимизирует работу своих серверов

30.01.2006 17:33

В документе "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 это окно приходится разгонять каждый раз заново."

  1. Главная ссылка к новости (http://public.yahoo.com/~radwi...)
  2. OpenNews: Проект LiveJournal.com изнутри.
Лицензия: CC BY 3.0
Источник: sysoev.ru
Короткая ссылка: https://opennet.ru/6887-apache
Ключевые слова: apache, php, tune, speed, performance, optimization, cache, freebsd, buffer
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (9) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 23:16, 30/01/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В тексте не говорится, что в Yahoo работают сервера под Linux.
     
     
  • 2.3, Free (??), 07:28, 31/01/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Но, тем не менее, упоминается как увеличивать SendBufferSize и для Фри, и для Линуха.
     

  • 1.4, злобный (?), 07:36, 31/01/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а что будет если ответ превышает 224 кб ?
    будет резаться на части по 224 ?
     
     
  • 2.6, Игорь Сысоев (?), 21:13, 31/01/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не будет резаться. По мере освобождения буфера Апач будет добавлять в него данные. Проблема в том, что если клиент медленный, то Апач будет его ждать в течение времени, необходимого для передачи полного ответа минус 224К. Очевидно, ответы этих серверов укладываются в 224К.
     
     
  • 3.8, Алексей (??), 01:51, 01/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    А что, если ответ укладывается в 224К - то Апач его засунет в буфер, и на этом обработку запроса закончит? Т. е. сразу будет готов работать с другим подключением?
     
     
  • 4.9, Игорь Сысоев (?), 09:00, 01/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    При условии, что Апач собран с -DNO_LINGCLOSE, да, сразу готов работать с другим соединением.
     

  • 1.5, toivo (?), 18:08, 31/01/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лесом ответ такого размера. Хотя всякое случается...
     
  • 1.7, volos (?), 21:24, 31/01/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Там Linux/FreeBSD
     
  • 1.11, RomanG (??), 10:32, 19/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот тут можно посмотреть, на чем Максим этот сервер (http://www.opennet.me/) делал (вторая половина странички):
    http://www.opennet.me/guide.shtml
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру