|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Goncharov 2:5020/400 16 Nov 2005 01:58:23 To : Igor Sysoev Subject : Re: httpd в ядре -------------------------------------------------------------------------------- Hi Igor Sysoev! On Tue, 15 Nov 2005 14:45:20 +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> Если будет 10 процессов по 200 соединений, то будет легче. IS> Есть у меня одна машина 3.4 с nginx'ом, использует select, 20 рабочих IS> процессов, по 100-300 соедиений на процесс. Хм. Интересно, сколько можно выжать из select() (пределы poll() тоже интересны) соедиений всего, если использовать небольшое число соединений на процесс, скажем по сотне?.. >> Hу а если бы он был в ядре - смог бы он это сделать еще лучше? :) IS> Hа самом деле, в nginx есть ещё куда расти - кэширование открытых IS> файлов и кэширование мелких файлов. А вынос в ядро добавит ещё 10% IS> производительности, а геморрою - на все 1000%. А как он их будет кэшировать, если он их сам не читает, а отправляет по sendfile() ? Делать mmap() и надеяться, что оно останется в кэше системы? 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 ? IS> Kernel Virtual Address space. 256 страниц по 4K, получается 1G. А откуда цифра 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/10359744270b9.html, оценка из 5, голосов 10
|