Я установил APC, но не наблюдаю такого большого влияния на производительность, как ожидал. На самом деле, я не уверен, что наблюдаю любой выгода, хотя, возможно, это просто потому, что время процессора, затрачиваемое на интерпретацию PHP-кода, ничтожно по сравнению с выполнением моего собственного кода.
Поэтому мне интересно: возможно, это потому, что я запускаю PHP как модуль apache (в отличие от fastcgi) и / или потому, что php использует prefork (в отличие от worker)? Помешает ли что-либо из этого как-то улучшить производительность, которую можно было бы достичь с помощью APC?
APC корректно работает с mod_php
в том смысле, что все процессы Apache используют один и тот же кеш APC. Фактически, конфигурация FastCGI может быть более проблематичной в этом отношении (например, при использовании mod_fcgid
, Общий кеш APC не будет работать должным образом; впрочем, у php-fpm таких проблем быть не должно).
Для правильной работы APC может потребоваться некоторая настройка; например, размер разделяемой памяти по умолчанию (apc.shm_size=32M
) вероятно слишком мало. Вы можете использовать apc.php
сценарий, распространяемый с APC, чтобы получить некоторые показатели производительности для вашего кеша - поместите сценарий в доступный в Интернете каталог, обслуживаемый тем же экземпляром кеша (с mod_php
это означает «любой виртуальный хост на том же экземпляре Apache») и получить к нему доступ из веб-браузера, пока на вашем фактическом сайте присутствует некоторая нагрузка. Ваш кеш не должен заполняться при нормальной загрузке сайта (это нормально, если кеш заполняется при некоторых редких запросах администратора, но код PHP, используемый для ответа на запросы от обычных пользователей сайта, всегда должен помещаться в кеш для достижения максимальной производительности).