Остановимся чуть подробнее на вопросе использования веб-сервером оперативной памяти.
Как мы уже упоминали, в большинстве конфигураций на каждый запрос пользователя к сайту веб-сервер запускает отдельный процесс-обработчик. Вместе с загруженными модулями, интерпретатором PHP и исполняемым приложением каждый процесс может занимать 20-30 мегабайт, а иногда и более.
10 запущенных процессов будeт потреблять уже 200-300М, а запущенные 100 процессов приведут к сильнейшему свопингу системы с объемом оперативной памяти в 1Г, так как для работы всех процессов потребуется порядка 2-3Г памяти.
Как показывает практика, именно нехватка оперативной памяти для всех процессов может стать ключевым фактором нестабильности при пиковых нагрузках.
Также стоит отметить, что в обычной конфигурации веб-сервер обрабатывает все запросы к PHP-страницам, к графическим файлам, бинарным файлам, таблицам стилей и другим составным частям сайта.
На одну страницу сайта может приходиться от нескольких десятков до нескольких сотен графических элементов. Загрузка бинарных файлов, XML-файлов, таблиц стилей также выполняется веб-сервером в обычных конфигурациях.
Теперь, если вспомнить, что обычный процесс веб-сервера занимает 20-30М, то получается, что для выдачи статических элементов сайта полностью не используется функциональность по обработке PHP, а память при этом используется, и процесс занят обработкой запросов. Получается, что до 90% времени процесс, находящийся в памяти, будет обрабатывать именно статические документы, неэффективно используя ресурсы.
Проблема выдачи статического контента настолько существенна, что одной из важнейших задач является минимизация числа статических запросов, обрабатываемых веб-сервером.