Два ноутбука, связаны между собой 50мбитным Wi-Fi, на одном сервер, на другом клиент, клиент производит замер используя ab:
# ab -n 10000 -c 100 -k -H "Accept-Encoding: gzip, deflate" http://spfng.com/ 2>&1 | egrep "^(Failed|Requests)"
Железо значение не имеет, у всех оно разное.
За эталон возьмём статичный blank.html весом пусть пару байт.
Сервер обрабатывает порядка 9000 запросов в секунду, процессор едва ли нагружен, порядка 20% на ядро. Значит, любая другая статика, читай, закэшированные php-скрипты (такая же .html статика) должны отрабатывать с тем же результатом.
Возьмём пустой .php скрипт, этот файл должен прогоняться через интерпретатор php и выдавать результат веб-серверу, а веб-сервер клиенту, — ab сообщает об обработке 2000 запросов в секунду, что для «динамики», имхо, неплохой результат. Все процессы php-fpm и nginx нагружают процессор сервера на 100%.
Теперь включаем кэширование сайта с динамичными блоками, которые включаются на странице при помощи SSI, <!--# include virtual="/user_info.php" -->
, — кэшируется страница, кэшируется этот SSI-блок для каждого юзера в отдельности, потом страница собираются и отдаётся пользователю. Включаем ssi on;
в конфиге nginx, и сервер обрабатывает около 2500 запросов в секунду, что мягко говоря, для закэшированной страницы ОЧЕНЬ мало, потому что от статики я ждал тех самых 9000 запросов/сек. Эти же самые 2000 тире 2500 запросов в секунду мне выдаёт обычный php без кэширования.
Правда, благодаря кэшированию, процессор теперь отдыхает, php не дёргается.
Теперь отключаем ssi off;
, попробуем запросить закэшированную страницу /user_info.php, и получаем те самые завестные 9000 запросов в секунду, Карл!
Я аутирую.
Включаю SSI — получаю 2000 rps на статике, ВЫключаю SSI — получаю максимальные 9000 rps на статике.
По итогам, SSI и HighLoad — вещи несовместимые, никак. Получается, если нужна максимальная отдача сервера, SSI должен быть отключён, а страницы должны быть закэшированы полностью, и никаких блочных вставок, никакой «сборки страницы» на стороне сервера. Страница должна кэшироваться со всеми «динамическими вставками» целиком, иначе получается херня.
Забудьте про SSI.
Вот такая загогулина.