ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


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


  ПРОГРАММЫ 



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














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

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

[apache-talk] Re: [apache-talk] прошу помощ и в performance tuning



On Sun, 16 Jan 2005, Igor Sysoev wrote:

> Можно попробовать поставить только один рабочий процесс, чтобы
> уменьшить число параллельных запросов к диску.


Тогда получается еще хуже: все запросы вынуждены выстраиваться в
одну очередь, и даже те запросы, которые могут быть обслужены без
обращений к диску (данные уже в кеше, или данные с диска вообще
не нужны), ждут выполнения дисковых операций всех предыдущих
запросов. Размер очереди и время отклика сервера увеличиваются
катастрофически.

Решением могло бы быть изменение логики работы httpd: кроме
рабочего процесса есть еще дисковый процесс, рабочий процесс
проверяет присутствие нужного блока данных в памяти (функция
mincore, с совместимостью у нее очень, но на linix и freebsd
есть), и если нет - отсылает запрос на чтение дисковому процессу.


Если без изменения логики, то как уже здесь писали: можно
увеличивать размер читаемых блоков, увеличивая tcp-буфер.
В nginx такой опции вроде нет (через setsockopt(SO_SNDBUF)),
поэтому можно увеличить системное значению по умолчанию,
в linux увеличение буфера с дефолтных 16k до 128k:
echo "4096 131072 131072" > /proc/sys/net/ipv4/tcp_wmem
Хотя поможет ли - неизвестно ;)



 




Copyright © Lexa Software, 1996-2009.