Проблемы использования постоянных соединений и их решения
Аверин Сергей. Руководитель отдела десктопных приложений компании Badoo.
Участовал в создании проектов habrahabr.ru, dirty.ru, leprosorium.ru, autokadabra.ru, dribbler.ru, trendclub.ru.
Доклад(45 мин)
Презентация (pdf, 602 Kb)
На своей практике мы убедились, что с проблемами постоянных соединений типичные php-разработчики знакомы плохо. Чаще всего они полагаются на «авось», который перестает работать при первой серьезной нагрузке.
В докладе рассматриваются характерные проблемы, возникающие при использовании постоянных соединений. Рассматриваются проблемы, связанные с принципами работы ОС, построением stateful/stateless протоколов, особенностями сетевого взаимодействия по TCP, «грабли» и нюансы реализации постоянных соединений в php (рассмотрено несколько стандартных extension'ов и особенности FastCGI-режима).
Подробно:
На своей практике мы убедились, что с проблемами постоянных соединений типичные php-разработчики знакомы плохо. Чаще всего они полагаются на «авось», который перестает работать при первой серьезной нагрузке.
В докладе рассматриваются характерные проблемы, возникающие при использовании постоянных соединений. Рассматриваются проблемы, связанные с принципами работы ОС, построением stateful/stateless протоколов, особенностями сетевого взаимодействия по TCP, «грабли» и нюансы реализации постоянных соединений в php (рассмотрено несколько стандартных extension'ов и особенности FastCGI-режима).
Приведен обзор распространенных протоколов из мира веб (MySQL, Memcached, MongoDB и т. д.) и разобраны из плюсы и минусы.
Показаны пути решения на примере конкретного большого highload проекта и «граблей», на которые мы в нем наступали.
Показано несколько разносторонних путей организации работы с C/C++ софтом чере pconnect.
Описаны дополнительные ускоряющие работу и увеличивающие надежность подходы.
Рассмотрен connection pooling софт и приведен список рекоммендаций по проектированию архитектуры веб-приложений.
Программа конференции