что влияет на размер памяти занимаемой worker процессом?

Maxim Dounin mdounin at mdounin.ru
Thu Oct 15 12:53:50 MSD 2009


Hello!

On Thu, Oct 15, 2009 at 12:32:26PM +0400, Maxim Dounin wrote:

> Hello!
> 
> On Thu, Oct 15, 2009 at 11:51:54AM +0400, Igor Sysoev wrote:
> 
> > On Thu, Oct 15, 2009 at 11:34:46AM +0400, Maxim Dounin wrote:
> > 
> > > Hello!
> > > 
> > > On Thu, Oct 15, 2009 at 09:57:04AM +0400, Vasiliy G Tolstov wrote:
> > > 
> > > > В Срд, 14/10/2009 в 18:11 +0300, Alexey пишет:
> > > > > On Wed, 14 Oct 2009 14:12:51 +0400, Vasiliy G Tolstov <v.tolstov at selfip.ru>
> > > > > wrote:
> > > > > > то есть worker процесс занимает 20 мегабайт
> > > > > > памяти. На что влияет размер
> > > > > > занимаеомй памяти?
> > > > > 
> > > > > как минимум worker_connections
> > > > > 
> > > > 
> > > > worker_processes 2;
> > > > pid /var/run/nginx.pid;
> > > > events {
> > > >         worker_connections  100000;
> > > >         use epoll;
> > > > }
> > > > 
> > > > 
> > > > А есть где-то информация, сколько памяти требуется для одного
> > > > worker_connection ?
> > > 
> > > Основное, что ест память - это *буфера*, выделяемые на каждое 
> > > активное соединение.  Смотреть внимательно на размеры
> > > 
> > > output_buffers
> > > proxy_buffers/fastcgi_buffers
> > > gzip_buffers
> > > client_*_buffer*
> > > 
> > > и т.п., складывать, умножать на worker_connections.  Результатом 
> > > будет теоретический максимум занимаемой воркером памяти.
> > 
> > Сейчас worker_connections выделяются при старте, поэтому 100000 соединений
> > будут весьма заметны.
> 
> sizeof(struct ngx_connection_t) == 100, т.е. 100000 это 10 мегабайт.

А, там ещё 2 * sizeof(ngx_event_t), т.е. ещё где-то + 100 байт на
соединение под i386.  Как раз и получается 20 мегабайт без 
нагрузки.

Maxim Dounin

> Хотел было сказать что это копейки, но перечитал исходный вопрос - он 
> был про 20 мегабайт... :)
> 
> Каково же будет удивление топикстартера когда во все эти 
> соединения ещё и клиенты придут? :)
> 
> Maxim Dounin





More information about the nginx-ru mailing list