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
Хотя поможет ли - неизвестно ;)
|