OPcache — это встроенный в PHP байт-код кэш, который значительно увеличивает производительность PHP-приложений за счет кэширования скомпилированных скриптов.
opcache.enable=1 ; Включить OPcache
opcache.memory_consumption=128 ; Память под кэш (MB)
opcache.interned_strings_buffer=8 ; Буфер для интернированных строк
opcache.max_accelerated_files=4000 ; Макс. число кэшируемых файлов
opcache.validate_timestamps=0 ; Не проверять изменения файлов
opcache.revalidate_freq=0 ; Частота проверки (сек)
opcache.save_comments=0 ; Не сохранять комментарии
opcache.enable_cli=0 ; Отключить для CLI
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.fast_shutdown=1
opcache.huge_code_pages=1 ; Использовать huge pages (Linux)
<?php phpinfo(); ?>
print_r(opcache_get_status());
Пример вывода:
[
"opcache_enabled" => true,
"memory_usage" => [
"used_memory" => 62358624,
"free_memory" => 7759824,
"wasted_memory" => 234232,
],
"opcache_statistics" => [
"num_cached_scripts" => 432,
"hits" => 123456,
"misses" => 12,
"blacklist_misses" => 0,
]
]
opcache_reset(); // Сбросить весь кэш
opcache_invalidate('/path/to/script.php', true);
opcache.memory_consumption
opcache.max_accelerated_files
opcache_get_status()['memory_usage']['wasted_memory']
opcache.validate_timestamps=1
Добавить в config/opcache.php
:
return [
'enabled' => env('OPCACHE_ENABLED', true),
];
Использовать скрипт для сброса кэша при деплое:
php bin/console cache:clear --env=prod
OPcache — важнейший инструмент для ускорения PHP-приложений. Правильная настройка позволяет достичь 50-70% прироста производительности. Ключевые параметры: достаточный объем памяти, отключение проверки файлов в production и мониторинг hit rate. Всегда сбрасывайте кэш при деплое новых версий кода.