Суббота, 18.05.2024, 16:55
Приветствую Вас, Гость | RSS
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » 2016 » Апрель » 25 » В рамках проекта Lwan развивается новый высокопроизводительный HTTP-сервер
18:12
В рамках проекта Lwan развивается новый высокопроизводительный HTTP-сервер
Бразильский разработчик Леандро Перейра (Leandro Pereira) из Intel Open Source Technology Center развивает новый легковесный HTTP-сервер Lwan, нацеленный на минимальное потребление ресурсов и поддерживающий отдачу как статического, так и динамического контента. Lwan можно использовать обособленно или в форме встраиваемой библиотеки. Разработка Lwan началась четыре года назад в форме персонального исследовательского проекта, нацеленного на изучение методов многопоточной обработки данных и неблокирующего ввода. Код проекта написан на языке Си и распространяется под лицензией GPLv2+. Официально поддерживается работа только в Linux, поскольку обработка событий завязана на механизм epoll (имеется неофициальный порт для FreeBSD/kqueue). Сервер включает встроенный движок-шаблонизатор Mustache, поддерживает подключение обработчиков контента, написанных на языках Си и Lua, и предоставляет API для разработки интегрированных с HTTP-сервером web-приложений и для создания дополнений, расширяющих возможности HTTP-сервера. Lwan поддерживает протоколы HTTP/1.0, HTTP/1.1 (с поддержкой keep-alive и pipelined) и PROXY, для перенаправления запросов применяется сопоставление по шаблонам Lua. Для асинхронной обработки соединений используются сопрограммы, выполнение которых координируется встроенным планировщиком совместной многозадачности, что позволяет создать иллюзию блокирующего ввода/вывода для обработчиков запросов. Сервер обеспечивает минимальное потребление памяти и минимизирует число системных вызовов, операций копирования и распределения памяти. Например, для 10 тысяч ожидающих обработки соединений расходуется около 500 Кб ОЗУ. Размер исполняемого файла составляет 110 Кб. В зависимости от размера файла выбирается оптимальный метод его отдачи, например, для файлов больше 16 Кб не используется прямая отдача без промежуточного копирования в пространство пользователя, а для небольших файлов применяется векторизированный ввод/вывод с задействованием отражённых через mmap буферов.
Просмотров: 186 | Добавил: muge | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Календарь