|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Goncharov 2:5020/400 15 Nov 2005 17:59:13 To : Igor Sysoev Subject : Re: httpd в ядре -------------------------------------------------------------------------------- Hi Igor Sysoev! On Tue, 15 Nov 2005 13:13:21 +0000 (UTC); Igor Sysoev wrote about 'Re: httpd в ядре': IS>>> В ядре есть одна полезная вещь - kqueue(2). Всё остальное меркнет перед IS>>> ней. >>> Есть цифры, насколько оно лучше? IS>> Цифры можно посмотреть здесь: IS>> http://people.freebsd.org/~jlemon/papers/kqueue.pdf IS>> а что касается практики, то select() и poll() съедают весь процессор IS>> на паре тысяч одновременных соединений, а kqueue спокойно работает IS>> на тридцати тысячах. >> Съедают в одном процессе или суммарно на всем сервере? IS> Если один процесс работает с парой тысяч одновременных соединений IS> в одном процессе, но на всём сервере кончается процессор. А если это будут скажем 4 процесса по 500 соединений? IS>>> Hа мой взгляд, http сервер в ядре может есть процессор максимум IS>>> на пару дестяков процентов меньше, а вот проблемы с безопасностью IS>>> и портированием на новую версию ядра могут быть большие. IS>>> А для статики десятки процентов - это ничто, проще поставить ещё IS>>> одну машину. IS>>> И, кстати, in-kernel сервер вовсе не гарантирует скорость. >>> Основная цель такого сервера - увеличить число обслуживаемых клиентов, а >>> не скорость. IS>> Число клиентов (соединений) упирается в IS>> kern.ipc.nmbclusters IS>> kern.ipc.maxsockets IS>> kern.ipc.nsfbufs >> Это число соединений. А их еще надо обслужить, и тут дизайн сервера >> становится важен. IS> Hу nginx, например, легко обслуживает тридцать тысяч одновременных IS> соединений и две тысячи запросов в секунду на P3-650. user time 20%, IS> system 40%. В ядре используется 60,000 сокетов. Hу а если бы он был в ядре - смог бы он это сделать еще лучше? :) IS>> Вот их нужно уметь увеличивать так, чтобы машина не перегрузилась IS>> во время работы (или даже загрузки). >> Есть рекомендации по подбору оптимума? IS> Hа одной машине 4.10 с 1G у меня стоит IS> # 192M KVA IS> kern.ipc.nmbclusters="65536" IS> # 50M KVA IS> kern.ipc.maxsockets="65536" IS> # 120M KVA IS> kern.ipc.nsfbufs="30720" IS> В сумме под сеть отдано около 360M KVA. При KVA_PAGES=256 (default), IS> это, насколько я понимаю, максимум. Можно что-то уменьшить, и что-то IS> увеличить, но в пределах 360M, смотря чего не хватает. IS> Чтобы отдать больше 360M, нужно увеличивать KVA_PAGES. Что такое KVA и почему при дефолте 256 их отдано 360 ? -- WBR, Vadim Goncharov. ICQ#166852181 mailto:vadim_nuclight@mail.ru [Moderator of RU.ANTI-ECOLOGY][FreeBSD][http://antigreen.org][LJ:/nuclight] --- slrn/0.9.8.1 on FreeBSD 4.11/i386 * Origin: Nuclear Lightning @ Tomsk, TPU AVTF Hostel (2:5020/400@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/10359cc238489.html, оценка из 5, голосов 10
|