i formulate infinity and store it deep inside of me

Powered by Astir.News engine

HighLoad 2007, день второй

01 октября 2007, 19:11

продолжаю про Highload

Секция "Основы разработки высоконагрузочных систем", зал #1

10:00 / "Тюнинг операционных систем" / Дмитрий Лоханский

Подробно рассмотрен путь пакета от клиента к веб-серверу (т.н. трехступенчатое TCP рукопожатие), выявлены "диск, память и сеть" как ключевые в производительности. Про память рассказано о различиях пейджинга и свопинга, ну и собственно почему при неправильном выделении апач у нас может засвопиться и сам себя потопить. Про диски - рекомендации по организации многоуровневой структуры, ну, типа файлы "50073", "400374" и "user.data" лучше хранить как "500/50073", "400/400374" и "u/us/user.data" (хотя, я бы хранил, и храню - по другому. у меня все файлы по последним 3 цифрам раскладываются, типа "50073" - в "073/50073". этого достаточно для большинства веб-проектов.) Про сеть ничего нового, это kern.ipc.somaxconn - который докладчик советовал поставить в 4096, я же советую ставить в 8192. Еще про nmbclusters был совет поставить в 65536 - это верно. И net.inet.tcp.sendspace и net.inet.tcp.recvspace (рекомендую не меньше 32к).

Я же от себя посоветую еще в зависимости от количества памяти покрутить kern.ipc.maxsockbuf, kern.ipc.shmmin, kern.ipc.semvmx, kern.ipc.semmsl, kern.ipc.semmap, kern.maxfiles (!) и kern.maxfilesperproc (!). А также net.inet.tcp.blackhole, дабы не реагировать на порты, которые мы не слушаем.

В конце я удивился вопросу одного слушателя, который представился, что он из Яндекса. Он спросил, где можно почитать подробнее о таких настройках, и откуда сам докладчик взял эти рекомендации. Я посоветовал ему всем известный opennet.ru, да и документацию никто не отменял, там подробно практически все переменные ядра описаны.

10:45 / "Сетевая многозадачность: событийные машины" / Павел Кудинов

Если честно, я не такой монстр, чтобы до конца понять все, что Павел рассказал. На этот раз шла речь об использовании POE. Возможно, это просто выходит за рамки моей специализации. Зато я почувствовал себя на голову выше тех, кто Перл не знает вообще :-)


Секция "Администрирование, поддержка, сопутствующие вопросы", зал #2

12:00 / "Эксплуатация портала http://www.yandex.ru" / Татьяна Бахаревская

Татьяна сама прошла путь от простого системного администратора до руководителя отдела администрирования компании "Яндекс". Администрирует и до сих пор что-то. Интересные, хотя и старые фотки дата-центров. Что-то еще было.. Удивился, что дизель в качестве power-бэкапной энергии они начали использовать только пару лет назад. Весьма познавательно, в общем.


12:45 / Здесь я решил сделать перерыв, т.к. мужика из Microsoft мне слушать не хотелось. Прогулял до следующего докладчика, коего мне гораздо больше послушать хотелось.


Секция "Базы данных, системы хранения", зал #2

13:30 / "Улучшения производительности PostgreSQL версии 8.3" / Bruce Momjian (PostgreSQL core-team)

Брюс рассказывал "хорошие новости". О сокращении системных полей для хранения 2-байтных данных, об авто-ваккууме, об асинхронном сбросе данных на диск, о новом способе перебора по таблицам. Все это будет в 8.3. Ждем-с. Потом мы окружили Брюса в холле, я в основном слушал, хотя и сам свои вопросики задал. Заодно мы пропустили следующий доклад о производительности GIST и GIN индексов в PostgreSQL Федора Сигаева. Ну тут уж что было поделать - на теплоход я не оставался, и другой возможности пообщаться в именитым разработчиком у меня не было.

Секция "Тестирование", зал #2

15:45 / "Обзор инструментальных средств для нагрузочного тестирования" / Павел Липский

Рассмотрен ab (apache bench) и JMeter. Не, ну этого мало. Учитывая неряшливо слепленную презентацию, складывалось впечатление, что докладчик или не готовился, или готовился в спешке за день до доклада. В общем, секция "Тестирование" во второй день была провалена.

16:30 / "Масштабирование результатов нагрузочного тестирования методом анализа стоимости транзакций" / Сергей Гринкевич

Вкратце: в 3 литровой банке у нас 30 огурцов, значит в 100 литровую бочку поместятся 33 * 30 + (30/3) = 1000 огурцов. О том, что огурцы бывают разные, и некоторые могут "раздавиться" в процессе укладки в бочку, мы конечно же не говорим. Чисто теоретический доклад, при этом, нет каких либо практических данных о его применении, соответственно - о достоверности вычислений. В чистой модели, возможно, цифры будут близки. Практика же показывает, что система обычно выдерживает меньше соединений и нагрузок, нежели в теории.

Секция "Администрирование, поддержка, сопутствующие вопросы", зал #2

17:45 / "Доклад о системах выкатки кода и изменений в больших проектах" / Яндекс и Рамблер

Доклада не получилось, поэтому просто посадили 2 человек от Яндекса и 2-х - от Рамблера, после чего каждый поделился, как у них сделана выкатка кода и возможность отката в случае серьезных багов. В общем, ничего сверхестественного, у каждого своя система пэкэджей (у Рамблера даже самописная).

18:30 / "Многоуровневый мониторинг веб-систем класса mission-critical" / Юрий Федосеев

Несмотря на то, что доклад был последним, слушал я внимательно, да и веселый юморной настрой после трех предыдущих докладов как-то спал. Ребята, по моему, излишне фанатично подходят к делу (касательно ложных вызовов сисадмина для проверки его реакции), этим самым они сами нарушают правило "Волки! Волки!". Хотя, если это происходит только один раз, на этапе проверки - возможно, такое и можно допустить. В любом случае, перестраховаться никто не мешает, и лучше уж действительно знать, сможет ли админ справиться с проблемой, или надо надеяться на другого админа (а ведь никто не застрахован, ну вот был звонок мне в выходной день, а я на рыбалке за 150 км, где кроме связи ничего нет).

На этом про доклады я закончу, и следующим постом попытаюсь сделать выводы - о полезности данного мероприятия для меня.

Tags: highload