Метка: Производительность
18 материалов

Обмен с 1С, растягивающийся на часы вместо минут, — типичная проблема для каталогов, разросшихся до десятков тысяч товаров. Разберём, откуда берётся эта медлительность и какие настройки реально ускоряют выгрузку и загрузку больших каталогов через протокол CommerceML. Ограничение времени выполнения как первопричина зависаний Обмен по HTTP-протоколу через веб-интерфейс упирается в ограничение времени выполнения PHP-скрипта — большой каталог физически не успевает обработаться…

Изменение внесено, но на сайте по-прежнему видна старая версия — классический симптом проблемы с кешем, но причина не всегда очевидна с первого взгляда, поскольку в Битриксе одновременно работает несколько независимых уровней кеширования. Разберём, что проверять по порядку, когда штатная очистка кеша не помогает. Уровень 1: управляемый кеш и кеш компонентов Настройки → Инструменты разработчика → Управление кешем — первое место…

До появления удобной обёртки Bitrix\Main\Data\Cache в D7, ручное кеширование в Битриксе строилось на классе CPHPCache. Он до сих пор встречается в старом коде и в некоторых сценариях остаётся рабочим вариантом. Разберём его устройство и чем он отличается от современной обёртки. Базовое использование <?php $cache = new CPHPCache; $cacheTime = 3600; $cacheId = ‘my_data_’ . $categoryId; $cacheDir = ‘/my_module/category/’; if ($cache->InitCache($cacheTime,…

Настройки MySQL или MariaDB по умолчанию рассчитаны на усреднённый сценарий, а не на конкретную нагрузку сайта на 1С-Битрикс, — разумный тюнинг параметров сервера базы данных может дать заметный прирост производительности без единой правки прикладного кода. Разберём ключевые параметры, на которые стоит обратить внимание. innodb_buffer_pool_size — самый влиятельный параметр # my.cnf innodb_buffer_pool_size = 4G Этот параметр определяет объём памяти, выделенной под…

DDoS-атака на уровне приложения выглядит иначе, чем классическая сетевая атака, и требует других мер защиты. Разберём, что 1С-Битрикс и хостинг реально могут сделать против атаки на уровне HTTP-запросов, и почему полноценная защита начинается за пределами самого сайта. Два разных уровня DDoS Сетевая атака (переполнение канала, SYN-флуд) обрабатывается на уровне провайдера или CDN и не решается настройками самого сайта — для…

Не всякая фоновая задача — это агент, который ждёт своего интервала. Иногда нужно выполнить код сразу после того, как ответ уже ушёл пользователю, — чтобы не заставлять посетителя ждать отправку письма, лог или другую тяжёлую операцию, не влияющую на то, что он видит на странице. Разберём, как это сделать в Битриксе корректно. Проблема: тяжёлая операция в основном потоке ответа <?php…

Загрузка всех изображений страницы сразу, включая те, что находятся далеко за пределами видимой области экрана, — лишняя нагрузка на канал и заметная задержка отрисовки. Разберём, как настроить отложенную загрузку изображений (lazy load) на сайте 1С-Битрикс современным способом, без сторонних JS-библиотек. Нативный атрибут loading вместо сторонних библиотек <img src=»/upload/product.jpg» loading=»lazy» alt=»Название товара»> Современные браузеры поддерживают атрибут loading=»lazy» нативно — изображение с…

Изображения — обычно самая тяжёлая часть страницы по объёму передаваемых данных, и формат WebP при сопоставимом визуальном качестве даёт заметно меньший размер файла, чем JPEG или PNG. Разберём, как внедрить WebP на сайте 1С-Битрикс без ручной перезаливки всей медиатеки. Почему WebP весит меньше WebP использует более эффективные алгоритмы сжатия, чем классические JPEG и PNG, — на реальных фотографиях экономия обычно…

Вывод полного дерева разделов каталога — меню категорий, фильтр в боковой панели, карта сайта — требует рекурсивного обхода структуры разделов инфоблока. Разберём, как правильно построить такое дерево через GetList, избегая типичной ловушки N+1 запросов. Наивный рекурсивный подход (неэффективный) <?php function getSectionsTreeNaive(int $iblockId, int $parentId = 0): array { $tree = []; $result = CIBlockSection::GetList( [‘SORT’ => ‘ASC’], [‘IBLOCK_ID’ => $iblockId,…

BitrixVM — готовый образ виртуальной машины с уже настроенным и оптимизированным под 1С-Битрикс стеком: nginx, PHP-FPM, MySQL, memcached, все параметры подогнаны под требования системы заранее. Разберём, когда это удобнее самостоятельной настройки сервера с нуля и на что обратить внимание при развёртывании. Что входит в готовый образ BitrixVM поставляется как готовый образ для распространённых гипервизоров (VMware, VirtualBox, Hyper-V) или как облачный…