|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Igor Sysoev 2:5020/400 15 Nov 2005 17:13:21 To : Vadim Goncharov Subject : Re: httpd в ядре -------------------------------------------------------------------------------- Vadim Goncharov <vadimnuclight@tpu.ru> wrote: > On Tue, 15 Nov 2005 12:02:05 +0000 (UTC); Igor Sysoev wrote about 'Re: httpd в > ядре': В ядре есть одна полезная вещь - kqueue(2). Всё остальное меркнет перед > ней. Есть цифры, насколько оно лучше? Цифры можно посмотреть > здесь: http://people.freebsd.org/~jlemon/papers/kqueue.pdf а что касается > практики, то select() и poll() съедают весь процессор на паре тысяч > одновременных соединений, а kqueue спокойно работает на тридцати > тысячах. Съедают в одном процессе или суммарно на всем сервере? Если один процесс работает с парой тысяч одновременных соединений в одном процессе, но на всём сервере кончается процессор. > IS>> Hа мой взгляд, http сервер в ядре может есть процессор максимум > IS>> на пару дестяков процентов меньше, а вот проблемы с безопасностью > IS>> и портированием на новую версию ядра могут быть большие. > IS>> А для статики десятки процентов - это ничто, проще поставить ещё > IS>> одну машину. > IS>> И, кстати, in-kernel сервер вовсе не гарантирует скорость. > >> Основная цель такого сервера - увеличить число обслуживаемых клиентов, а > >> не скорость. > IS> Число клиентов (соединений) упирается в > IS> kern.ipc.nmbclusters > IS> kern.ipc.maxsockets > IS> kern.ipc.nsfbufs > > Это число соединений. А их еще надо обслужить, и тут дизайн сервера > становится важен. Hу nginx, например, легко обслуживает тридцать тысяч одновременных соединений и две тысячи запросов в секунду на P3-650. user time 20%, system 40%. В ядре используется 60,000 сокетов. > IS> Вот их нужно уметь увеличивать так, чтобы машина не перегрузилась > IS> во время работы (или даже загрузки). > > Есть рекомендации по подбору оптимума? Hа одной машине 4.10 с 1G у меня стоит # 192M KVA kern.ipc.nmbclusters="65536" # 50M KVA kern.ipc.maxsockets="65536" # 120M KVA kern.ipc.nsfbufs="30720" В сумме под сеть отдано около 360M KVA. При KVA_PAGES=256 (default), это, насколько я понимаю, максимум. Можно что-то уменьшить, и что-то увеличить, но в пределах 360M, смотря чего не хватает. Чтобы отдать больше 360M, нужно увеличивать KVA_PAGES. -- Игорь Сысоев http://sysoev.ru --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6577c70325e1.html, оценка из 5, голосов 10
|