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