Окт 112012
 


Apache 2 работать может в нескольких мультипроцессорных режимов ( Модулей ).

  • prefork — Один процесс к запрос.
  • worker — Несколько процессов с несколькими нитями у каждого.
  • event — Экспериментальный вариант стандартного worker. Мне его еще не пришлось использовать.

Разберем один важнейших модулей apache это prefork.
Prefork это модуль мульти-процессорной обработки, prefork создает определенное количество дочерних процессов, в каждом из них ровно один поток, т.е. каждый процесс обрабатывает только одно соединение.
У меня apache используется в связке с nginx, для снижения нагрузки.
Железо у меня такое.
Один процессор с одним ядром.
2Г памяти.

Приступим к разборке конфигурационных записей.

head -n 300 /etc/apache2/apache2.conf | egrep -v "^$|#"
LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          50
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          50
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_event_module>
    StartServers          2
    MaxClients          50
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>


StartServers
— Указывается число процессов запускавшихся при старте.

MinSpareServers — Указываем минимальное число свободных процессов.

MaxSpareServers — Указываем максимальное число простаивающих процессов.

MaxClients — Важный параметр!, указывающий максимальное число дочерних процессов.

MaxRequestsPerChild — Управление переработкой процессов, убивая старые и запуская новые. Если по Русски то в этом значение указываем число запросов которое разрешено обрабатывать до переполнения.

ServerLimit — Аналогично как у MaxClients.
Так, а теперь оставшиеся параметры разберем.

LockFile — Параметр устанавливает путь к lockfile. Параметр устанавливающий дорожку к используемому lockFile`s.

PidFile — Файл, в котором сервер сохраняет свой индефикационный номер своего процесса.

TimeOut — Укажим время ожидания в секундах, прежде чем прием или отправка выдадут сообщение о time-out.

KeepAlive — Персистентное соединение ( язык сломаешь ), это тип виртуального соединения между серваком и клиентом, при котором сервер обслуживать более одного запроса от тогоде клиента в рамках того же соединения.
Вообщем читается и осваивается трудно, по Русски объясню.
При запросе от клиента к нашему вэб-серверу, браузер отправляет множество запросов на загрузку стилей, картинок и т.д. При использование параметра KeepAlive позволяет запросить страницу и ее файлы в течение одного соединения. Как то так.

MaxKeepAliveRequests — Укажим максимальное количество запросов при одном персистентном соединении, если параметр выставлен в 0 то значит без ограничения.

KeepAliveTimeout — Указываем время в секундах ожидания следующего запроса от клиента в рамках одного же персистентного соединения.

 Leave a Reply

(required)

(required)

38 Запросов к базе. 0,472 Генерации страницы, 36MB Использование памяти.
Вы зашли с IP: 54.196.47.145