Welcome! Log In Create A New Profile

Advanced

Раскладка памяти в php-fpm. Потребление ОЗУ.

Posted by alekciy 
Собственно сабж. Хочется узнать, сколько потребляет ОЗУ каждый рабочий
процесс и почему. А исходя из этого подумать над тем, как можно это
количество сократить. Цель - в условиях vds сократить количество ОЗУ в
расчете на один процесс с тем, что бы в текущей конфигурации можно
было создавать бОльшее количество рабочих процессов и как следствие
иметь возможность обрабатывать больше конкурентных запросов.

Почему возник такой вопрос? При старте каждый рабочий процесс
потребляет около 3.2МБ резидентной памяти (5.3.0 версия на Debian 5).
По мере работы количество памяти увеличивается до 15-25МБ. Хочется
понят почему и есть ли место для оптимизации.

Кстати. У меня они находятся в chroot-е, правильно ли я понимаю, что,
к примеру, таже libc загружается для каждого рабочего процесса?

root@alekciy:# pmap 19603 | grep libc
00002b7eae23b000 32K r-x-- /lib/libcrypt-2.7.so
00002b7eae243000 2048K ----- /lib/libcrypt-2.7.so
00002b7eae443000 8K rw--- /lib/libcrypt-2.7.so
00002b7eb0029000 1320K r-x-- /lib/libc-2.7.so
00002b7eb0173000 2044K ----- /lib/libc-2.7.so
00002b7eb0372000 12K r---- /lib/libc-2.7.so
00002b7eb0375000 8K rw--- /lib/libc-2.7.so
root@alekciy:# pmap 19653 | grep libc
00002b7eae23b000 32K r-x-- /lib/libcrypt-2.7.so
00002b7eae243000 2048K ----- /lib/libcrypt-2.7.so
00002b7eae443000 8K rw--- /lib/libcrypt-2.7.so
00002b7eb0029000 1320K r-x-- /lib/libc-2.7.so
00002b7eb0173000 2044K ----- /lib/libc-2.7.so
00002b7eb0372000 12K r---- /lib/libc-2.7.so
00002b7eb0375000 8K rw--- /lib/libc-2.7.so

Или же все же она шарится через мастер-процесс?

В общем хочется, что бы все PHP модули и связанные с ними данные
загружались только один раз в единственной копии, а в рабочих
процессах содержались лишь данные связанные непосредственно с
обрабатываемым запросом.
Алексей Бобок
Re: Раскладка памяти в php-fpm. Потребление ОЗУ.
February 13, 2010 05:14PM
> Собственно сабж. Хочется узнать, сколько потребляет ОЗУ каждый рабочий
> процесс и почему. А исходя из этого подумать над тем, как можно это
> количество сократить.

top показывает


> Почему возник такой вопрос? При старте каждый рабочий процесс
> потребляет около 3.2МБ резидентной памяти (5.3.0 версия на Debian 5).
> По мере работы количество памяти увеличивается до 15-25МБ. Хочется
> понят почему и есть ли место для оптимизации.

15-20 мегабайт - нормальный размер процесса. даже я бы сказал не много.


--
Best regards, Alexey Bobok
On Saturday 13 February 2010 22:06:54 Алексей Бобок wrote:
> > Собственно сабж. Хочется узнать, сколько потребляет ОЗУ каждый рабочий
> > процесс и почему. А исходя из этого подумать над тем, как можно это
> > количество сократить.
>
> top показывает

top не слишком полезен для ответа на поставленный вопрос.

Вот тут я писал почему: http://anight.livejournal.com/19913.html

> > Почему возник такой вопрос? При старте каждый рабочий процесс
> > потребляет около 3.2МБ резидентной памяти (5.3.0 версия на Debian 5).
> > По мере работы количество памяти увеличивается до 15-25МБ. Хочется
> > понят почему и есть ли место для оптимизации.
>
> 15-20 мегабайт - нормальный размер процесса. даже я бы сказал не много.
>

--
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take
По поводу top-а вспоминается это
http://virtualthreads.blogspot.com/2006/02/understanding-memory-usage-on-linux.html

15-25МБ конечно не мега много, но хочется меньше. Поэтому как: 1) на
32-ой это уже целый апач получается и значит по ресурсам выигрыша
никакого; 2) при старте то уходит 3,2МБ, значит есть, что
оптимизировать. Поэтому хочется оставаться в пределах 10МБ на процесс.
Я поминаю, утечки там, сборщик мусора, но может можно какими то
опциями это дело оптимизировать? Сейчас просто чаще рестартую воркеры.

Кроме того думаю пересобрать с disable-all, а нужные расширения
подгружать через extension. Как я понимаю, в этом случае они как
динамические библиотеки должны шариться между процессами. К сожалению
я еще пока не на столько хорошо знаю си, что бы понять, что происходит
в случае chroot-а. Теоретически шариться между воркерами они не будут,
т.к. у каждого из них будет своя копия внутри chroot-а.

On 14 фев, 02:06, Алексей Бобок <alexey.bo...@gmail.com> wrote:
> > Собственно сабж. Хочется узнать, сколько потребляет ОЗУ каждый рабочий
> > процесс и почему. А исходя из этого подумать над тем, как можно это
> > количество сократить.
>
> top показывает
>
> > Почему возник такой вопрос? При старте каждый рабочий процесс
> > потребляет около 3.2МБ резидентной памяти (5.3.0 версия на Debian 5).
> > По мере работы количество памяти увеличивается до 15-25МБ. Хочется
> > понят почему и есть ли место для оптимизации.
>
> 15-20 мегабайт - нормальный размер процесса. даже я бы сказал не много.
>
> --
> Best regards, Alexey Bobok
libevent появился в PHP 5.3.2+ (PHP SVN)
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 121
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready