Fastsocket - новая высокомасштабируемая реализация сетевой подсистемы ядра Linux
Fastsocket бесшовно интергрируется с существующими серверными приложениями - достаточно через LD_PRELOAD загрузить библиотеку libfsocket.so, которая подменит собой традиционные функции работы с сокетами. Например, для использования Fastsocket в nginx достаточно запустить сервер командой "LD_PRELOAD=./libfsocket.so nginx". При этом включение поддержки Fastsocket в ядре сопряжено с некоторыми трудностями - для применения Fastsocket следует использовать специально подготовленную отдельную сборку ядра Linux, вместо штатного ядра из дистрибутива. В настоящее время предлагается вариант ядра 2.6.32-431.17.1.el6 для использования в RHEL/CentOS 6.5.
Но игра стоит свеч, на сервере с 24 ядрами CPU рост производительности при выполнении Nginx и Haproxy составляет 290% и 620%, по сравнению с обычным сетевым стеком, предоставляемым ядром из состава CentOS-6.5. Более того, Fastsocket обеспечивает дополнительный прирост производительности при использовании Hyper-Threading и Flow-Director. В частности, активация Hyper-Threading даёт прирост в 20% производительности, а использование сетевой карты на базе контроллера Intel 82599 прибавляет 15% при работе в роли прокси.
Наибольшая эффективность работы Fastsocket достигается на системах, имеющих от 8 до 24 процессорных ядер, при использовании приложений, применяющих epoll для организации неблокирующего ввода/вывода и запускающих несколько параллельно работающих процессов-обработчиков соединений, таких как haproxy, nginx и lighttpd. Текущая реализация рассчитана в основном на обработку коротких TCP-соединений. Разработчиками проекта также подготовлен код для повышения эффективности обработки длительных TCP-соединений, который позволит увеличить производительность таких приложений, как СУБД Redis. Данный код будет опубликован после его стабилизации.
Источник: http://www.opennet.ru/opennews/art.shtml?num=40907
|
0 | Tweet | Нравится |
|