|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Igor Sysoev 2:5020/400 15 Nov 2005 00:18:35 To : Valentin Davydov Subject : Re: httpd в ядре -------------------------------------------------------------------------------- Valentin Davydov <val@sqdp.trc-net.co.jp> wrote: >> From: "Anton Yuzhaninov" <citrin@icn.bmstu.ru> >> Date: Mon, 14 Nov 2005 13:50:16 +0000 (UTC) >> >> VG> А у нас (во фре) есть http-серверы, работающие в ядре, для отдачи >> VG> статики? Я почему-то думал, что nginx как раз такой, работая на >> VG> netgraph :) >> >>nginx использует sendfile(2), что позволяет передавать данные из ядра в сеть >>минуя userspace и сокращяя тем самым кол-во переключений контекста. >> >>А целиком держать http-сервер в ядре большого смысла не вижу. > > Однако кроме sendfile(2) в ядре есть ещё и, к примеру, accf_http(9), > а сейчас, может, и другие полезные детали сабжа. Видать, какой-то > смысл всё-таки есть (типа, экономия переключений контекста). В ядре есть одна полезная вещь - kqueue(2). Всё остальное меркнет перед ней. Hасколько я понимаю, accf_http в Yahoo был изобретён ровно с одной целью: чтобы тяжёлый Апач не бездействовал между accept() и read() или чтобы его не могли заDOSить, передавая запрос по строке или даже по байту. Hа обычной загрузке accept-фильтры уменьшают число Апачей на 5-10%. В лёгких серверах влияение accept-фильтров на загрузку процессора в пределах погрешности измерения. Hа мой взгляд, http сервер в ядре может есть процессор максимум на пару дестяков процентов меньше, а вот проблемы с безопасностью и портированием на новую версию ядра могут быть большие. А для статики десятки процентов - это ничто, проще поставить ещё одну машину. И, кстати, in-kernel сервер вовсе не гарантирует скорость. -- Игорь Сысоев http://sysoev.ru --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/657747d68bbe.html, оценка из 5, голосов 10
|