worker_processes

Igor Sysoev is at rambler-co.ru
Mon Jul 4 09:21:47 MSD 2005


On Fri, 1 Jul 2005, Sergey Smitienko wrote:

> Andrey Y. Ostanovsky wrote:
>
>> On Fri, Jul 01, 2005 at 10:18:46AM +0300, Andrew Sitnikov wrote:
>> 
>> 
>>> VK> Да, но очень не хочется плодить сущности (я имею ввиду squid).
>>> VK> Если есть возможность покрутить переменные в nginx-е - лучше конечно 
>>> было бы сделать так.
>>> вы вообще чего там крутить хотите ? не совсем понятно про что вы вообще 
>>> говорите
>>> 
>> 
>> Начнем с начала.:) Игорь утверждает, что запрашиваемые статические картинки 
>> операционная система хранит в памяти. Мне _кажется_, что nginx читает их с 
>> диска. Есть ли какие-то инструментальные методы, позволяющие подтвердить 
>> или опровергнуть эти утверждения?
>> 
>> По топу я вижу, что большое количество памяти куда-то используется:
>> 
>> last pid:  8534;  load averages:  1.35,  1.52,  1.55     up 0+10:07:01 
>> 11:54:45
>> 50 processes:  1 running, 49 sleeping
>> CPU states: 11.7% user,  0.0% nice,  2.3% system,  2.3% interrupt, 83.6% 
>> idle
>> Mem: 481M Active, 1225M Inact, 190M Wired, 92M Cache, 112M Buf, 14M Free
>>                 ^^^^^^^^^^^^^^^
>> Swap: 2021M Total, 2021M Free
>> 
> Inactive -  pages not actively used by programs which are dirty and (at some 
> point) need to be written to their backing store (typically disk).
> Это кэш грязных страниц. Сюда попадает вся память, которая содержит редко 
> модифицируемые данные - скорее всего это данные твоей mysql.
> Cache / Buf - вот это уже дисковые кэши. Как я понимаю, при sendfile данные 
> качаются именно отсюда. Проблема в том, что mysql тоже является
> активным потребителем дискового кэша, он тоже сам ничего не кэширует считая 
> что ядро само разберется. Если размер базы данных + размер
> картинок больше дискового кэша, то получается лажа.
>
> Вот картина с реального сервера: 144M  картинок, 192M база данных. Катринки 
> отдаются nginx-ом, остальное проксится на back-end
> (apache, php, mysql). Удалось сбалансировать прожорливость php/mysql - в 
> результате имеем 135 мегабайт свободной памяти. Я думаю имнно этот
> показатель следует использовать  для  демонстрации  эфективной работы 
> дискового  кэша.
>
> last pid:  6072;  load averages:  0.27,  0.39,  0.39  up 69+12:07:34 
> 12:22:10
> 82 processes:  1 running, 81 sleeping
> CPU states:  2.9% user,  0.2% nice,  1.0% system,  0.4% interrupt, 95.5% idle
> Mem: 515M Active, 982M Inact, 300M Wired, 79M Cache, 199M Buf, 135M Free
> Swap: 1024M Total, 216K Used, 1024M Free

На самом деле, 135M Free - это плохо. Если со временем оно уменьшается
до нескольких мегабайт (или пару десятков), то хорошо. Нужно отдавать
эту память php/mysql.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list