Skip to content

Тест производительности Bitrix показывает мало операций в пункте "Процессор (CPU) XYZ 9.0 миллионов операций в секунду"

Тест производительности Bitrix показывает мало операций в пункте "Процессор (CPU) XYZ 9.0 миллионов операций в секунду"

Видя такую угрожающую надпись, можно решить что проблема непременно связана с CPU и его нагруженностью на конкретном сервере. Но, как правило, это не так.

Столкнувшись с такой проблемой, необходимо: * проверить нагрузку на сервере(ssh и top вам в помощь) * проверить, за сколько отдаётся главная страница сайта(httpstat $SITE_URL, где $SITE_URL – адрес нашего сайта) * проверить, всё ли в порядке с настройками PHP, в частности включен ли php-акселератор(opcache, если вы используете актуальные версии php).

Если на сервере есть LA, вызванная, к примеру http flood, проблему нужно решать, к примеру переводя домен атакуемого ресурса на защиту от DDOS.

Если в настройках Bitrix отключено кэширование, или у сборки PHP, используемой скриптами сайта не включен php-акселератор – включаем их, после чего проблема перестаёт проявляться.

Более интересный случай – когда кэш включен и настроен, LA на сервере минимальное, а ресурсов более, чем достаточно и настройки PHP/кэширования в норме, а попугаев в тесте всё равно минимум.

Так как данный тест выдаёт результат не в засивимости от реальной способности сервера производить большее, или меньшее количество операций, а в зависимости от скорости работы сайта(от того, насколько быстро отдаёт контент CMS при запросе к разным страницам), важно обращать внимание на результат httpstat. Если он далёк от эталлоного, и длится секунду и более, у нас проблема возникает из-за медленного ответа скриптов.

К примеру(реальный случай, описанный коллегой), Bitrix может быть настроен на использование кэша Memcache, при этом сам Memcache может быть остановлен или заблокирован в iptables.

В таком случае скрипты Bitrix ждут секунду ответа от Memcache. Если они его не получают вовремя, они продолжают свою работу. Но, к примеру, если ориентировочно страница сайта должна была отдаваться за 500 миллисикунд(из которых вычислительные операции, напрямую завязанные на CPU, при геренрации страницы занимают только часть времени генерации страницы), а отдаётся за 1500-1600 – для Bitrix это повод заподозрить низкую производительность CPU, и выдать минимум попугаев в тесте. Варианты, когда задержки при генерации страницы могут зависеть от факторов, не зависящих от CPU разработчики Bitrix в результате этого теста даже не пытались рассматривать. Поэтому к его результатам относится стоит с изрядной долей скепсиса. Низкий показатель теста говорит о том, что страницы сайта отдаются с задержкой. А уж чем вызвана задержка, зачастую можно установить только произведя отладку скрипта(xdebug в помощь), или с помощью strace обработчика php, что выполняет скрипты сайта. В одном случае это может быть не рабочий Memcache, в другом обращения в скриптах с внешним источникам данных по https, медленно производящиеся из-за задержек на стороне удалённого ресурса, к которому подключается скрипт сайта, в третьем – какой-то другой фактор, вносящий задержки в работу скриптов сайта. В таких случаях нужно искать причину возникновения задержки, и устранять её.