ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: worker_processes



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




 




Copyright © Lexa Software, 1996-2009.