Fastsocket - новая высокомасштабируемая реализация сетевой подсистемы ядра Linux

Группа китайских разработчиков высоконагруженных систем открыла наработки проекта Fastsocket, в рамках которого подготовлена альтернативная реализация сокетов и сетевой подсистемы ядра Linux. В отличие от штатной сетевой подсистемы ядра Fastsocket обеспечивает практически линейную масштабируемость, что позволяет добиться существенно более высокой производительности на многоядерных компьютерах. Система является стабильной и хорошо зарекомендовала себя в промышленном использовании. В частности, Fastsocket используется для обеспечения работы online-службы SINA (17-й по посещаемости сайт в мире). Все наработки проекта поставляются под лицензией GPLv2.

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% при работе в роли прокси.



Источник:
http://www.opennet.ru/opennews/art.shtml?num=40907

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>