Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Igor Sysoev                          2:5020/400     16 Nov 2005  17:16:03
 To : Vadim Goncharov
 Subject : Re: httpd в ядре
 -------------------------------------------------------------------------------- 
 
 Vadim Goncharov <vadimnuclight@tpu.ru> wrote:
 
 > On Tue, 15 Nov 2005 14:45:20 +0000 (UTC); Igor Sysoev wrote about 'Re: httpd в
 > ядре': В ядре есть одна полезная вещь - kqueue(2). Всё остальное меркнет перед
 > ней. Есть цифры, насколько оно лучше? Цифры можно посмотреть
 > здесь: http://people.freebsd.org/~jlemon/papers/kqueue.pdf а что касается
 > практики, то select() и poll() съедают весь процессор на паре тысяч
 > одновременных соединений, а kqueue спокойно работает на тридцати
 > тысячах. Съедают в одном процессе или суммарно на всем сервере? Если один
 > процесс работает с парой тысяч одновременных соединений в одном процессе, но
 > на всём сервере кончается процессор. А если это будут скажем 4 процесса по 500
 > соединений? Если будет 10 процессов по 200 соединений, то будет легче. Есть у 
 > меня одна машина 3.4 с nginx'ом, использует select, 20 рабочих процессов, по
 > 100-300 соедиений на процесс. Хм. Интересно, сколько можно выжать из select() 
 > (пределы poll() тоже интересны) соедиений всего, если использовать небольшое
 > число соединений на процесс, скажем по сотне?..
 
 Hу вот переключил я сейчас на одной машине nginx на select и 100 рабочих
 процессов. Машина на данный момент держит 10,000 keep-alive соединений и
 обрабатывает 500 запросов в секунду. И что же ? 30-40% user time, 60-70%
 system time, idle - 0%. Переключил обратно на kqueue и один рабочий
 процесс - 15-20% user time, 15% system time.
 
 > >> Hу а если бы он был в ядре - смог бы он это сделать еще лучше? :)
 > IS> Hа самом деле, в nginx есть ещё куда расти - кэширование открытых
 > IS> файлов и кэширование мелких файлов. А вынос в ядро добавит ещё 10%
 > IS> производительности, а геморрою - на все 1000%.
 > 
 > А как он их будет кэшировать, если он их сам не читает, а отправляет по
 > sendfile() ? Делать mmap() и надеяться, что оно останется в кэше
 > системы?
 
 Файлы меньше страницы лучше считать в память (не mmap) и отдавать writev().
 
 > 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 ?
 
 Получено экспериментально. Скорее всего, его можно увеличить, если
 уменьшить память под vfs и buffer cache.
 -- 
 Игорь Сысоев
 http://sysoev.ru
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 httpd в ядре   Vadim Goncharov   14 Nov 2005 15:59:35 
 Re: httpd в ядре   Anton Yuzhaninov   14 Nov 2005 17:50:16 
 Re: httpd в ядре   Valentin Davydov   14 Nov 2005 21:49:07 
 Re: httpd в ядре   Anton Yuzhaninov   14 Nov 2005 22:11:28 
 Re: httpd в ядре   Igor Sysoev   15 Nov 2005 00:18:35 
 Re: httpd в ядре   Vadim Goncharov   15 Nov 2005 12:43:42 
 Re: httpd в ядре   Igor Sysoev   15 Nov 2005 16:02:05 
 Re: httpd в ядре   Vadim Goncharov   15 Nov 2005 16:25:26 
 Re: httpd в ядре   Igor Sysoev   15 Nov 2005 17:13:21 
 Re: httpd в ядре   Vadim Goncharov   15 Nov 2005 17:59:13 
 Re: httpd в ядре   Igor Sysoev   15 Nov 2005 18:45:20 
 Re: httpd в ядре   Maxim Konovalov   15 Nov 2005 19:11:51 
 Re: httpd в ядре   Igor Sysoev   15 Nov 2005 19:31:43 
 Re: httpd в ядре   Gleb Smirnoff   16 Nov 2005 00:40:27 
 Re: httpd в ядре   Vadim Goncharov   16 Nov 2005 01:58:23 
 Re: httpd в ядре   Igor Sysoev   16 Nov 2005 17:16:03 
 Re: httpd в ядре   Vadim Goncharov   16 Nov 2005 21:23:37 
 Re: httpd в ядре   Valentin Nechayev   16 Nov 2005 23:38:09 
 Re: httpd в ядре   Vadim Goncharov   17 Nov 2005 15:58:49 
 Re: httpd в ядре   Igor Sysoev   17 Nov 2005 20:27:52 
 Re: httpd в ядре   Valentin Nechayev   17 Nov 2005 23:16:45 
 Re: httpd в ядре   Vadim Goncharov   17 Nov 2005 23:38:36 
 Re: httpd в ядре   Igor Sysoev   17 Nov 2005 23:57:20 
 Re: httpd в ядре   Valentin Nechayev   18 Nov 2005 01:49:47 
 Re: httpd в ядре   Vadim Goncharov   18 Nov 2005 02:43:52 
 Re: httpd в ядре   Valentin Nechayev   18 Nov 2005 18:29:17 
 httpd в ядре   Artem S. Ignatiev   18 Nov 2005 00:47:56 
 Re: httpd в ядре   Valentin Nechayev   18 Nov 2005 01:49:17 
 Re: httpd в ядре   Igor Sysoev   17 Nov 2005 20:24:51 
 Re: httpd в ядре   Sergey Skvortsov   17 Nov 2005 13:01:01 
 Re: httpd в ядре   Igor Sysoev   17 Nov 2005 13:31:33 
 Re: httpd в ядре   Sergey Skvortsov   17 Nov 2005 17:58:42 
 httpd в ядре   Slawa Olhovchenkov   17 Nov 2005 18:15:56 
 Re: httpd в ядре   Sergey Skvortsov   17 Nov 2005 18:31:18 
 Re: httpd в ядре   Igor Sysoev   17 Nov 2005 18:57:58 
 Re: httpd в ядре   Igor Sysoev   17 Nov 2005 18:56:57 
 Re: httpd в ядре   Valentin Nechayev   16 Nov 2005 13:18:02 
 Re: httpd в ядре   Igor Sysoev   16 Nov 2005 13:55:49 
 Re: httpd в ядре   Valentin Nechayev   16 Nov 2005 15:36:52 
 Re: httpd в ядре   Igor Sysoev   16 Nov 2005 16:37:34 
 Re: httpd в ядре   Valentin Nechayev   16 Nov 2005 23:35:08 
 Re: httpd в ядре   Igor Sysoev   14 Nov 2005 18:04:00 
Архивное /ru.unix.bsd/657749b4573e.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional