Дата последнего изменения: 11.01.2024
Ключевой способ снизить нагрузку на процессор – использовать прекомпиляторы PHP-кода. В настоящее время поддерживается акселератор OPcache (рекомендуется, доступен сразу «из коробки» в PHP v.5.5+).
Не забывайте выделять достаточный объем оперативной памяти для хранения разделяемого кэша скомпилированных PHP-файлов. Обычно бывает достаточно 32-64 Мб, но для уверенности можно увеличить объем выделяемой памяти до 128 Мб, в расчете на файлы административного раздела. Прекомпиляторы используют разделяемый кэш для хранения скомпилированного PHP кода в оперативной памяти, который доступен всем рабочим процессам веб-сервера, при этом скомпилированный PHP код хранится в кэше в единственном экземпляре (без дублирования).
Для уменьшения потребляемой памяти процессами веб-сервера, в котором запускается PHP, желательно исключить из компиляции или динамической загрузки все неиспользуемые модули.
При этом очень важно, чтобы в кэш прекомпилятора помещалось достаточное количество скриптов на PHP. Одна из самых часто встречающихся ошибок - это отсутствие каталога для сохранения откомпилированного кода.
Для ускорения работы с PHP-сессиями рекомендуется сохранять файлы сессий в каталоге, который представляет собой виртуальный диск в памяти или использовать установку session.save_handler=mm
в php.ini. Если есть возможность, рекомендуется использовать системный RAM диск. При этом необходимо отключать опцию Передавать пароль в зашифрованном виде на закладке Авторизация страницы настроек Главного модуля.
Важным инструментом по настройке производительности PHP является модуль Монитор производительности, входящий в комплект всех продуктов "1С-Битрикс". Протестировать настройки системы можно в административной части на странице Панель производительности (Настройки > Производительность > Панель производительности). Неоптимальная конфигурация PHP:
Как правило, выполнение рекомендаций позволяет увеличить производительность системы до достаточных величин. Численное значение параметра Конфигурация показывает основную характеристику сайта – скорость отдачи страниц клиенту. Чем больше число, тем лучше.
Ошибка Segmentation fault может произойти:
В первом случае необходимо определить в dbconn.php:
define("NO_BITRIX_AUTOLOAD",true)
Во втором случае надо:
-c
, которая позволяет указать папку, в которой необходимо искать файл php.ini. define('BX_NO_ACCELERATOR_RESET', true)