Расход оперативной памяти у интернет-магазина битрикс с 60 000 товаров

Расход оперативной памяти у интернет-магазина битрикс с 60 000 товаров

Исходные данные хостинг: тариф VDS-KVM-NVMe-Битрикс-Турбо, 3 ядра процессора, 6 Гб оперативной памяти, 60 Гб диска.

Исходные данные сайт: Версия PHP 7.4.29, Редакция продукта:  Бизнес, Решение intec.universe, 27556 - предложений, 19938 - товаров, 80 категорий


После выполнения мной доработки не связанной с обменом, у заказчика появилась проблема с обновлением товаров из раздела КПБ после обмена с 1С. 

Перестали выгружаться фото для торговых предложений, соответственно в каталоге созданный товар из данного предложения - деактивируется. 

Заказчик предположил, что есть какой то конфликт между 2 скриптами, один из которых моей разработки.


Я же прекрасно понимал, пересечения явно нет, так как я делал обработчик, который никак не мог повлиять на итоги обмена.

Возник вопрос в чем тогда может быть причина сбоя? Трикотаж обновляется, а кпб выгружаются, но деактивируются и без фото. Даже после запуска "Принудительной выгрузки фото"

Я предположил, что возможно не хватает опять ресурсов сервера, так как загрузка оперативки была 70%. Добавили еще +2 ГБ ОЗУ (было изначально 4Гб, потом я рекомендовал поднять до 6Гб)

Проблемы уже были ранее, поэтому вначале моей диагностики было выявлено, что 80% памяти занято до обмена и работы скриптов. Как видно 3Гб памяти нехватает для битрикс 60 000 товаров

3Гб памяти нехватает для битрикс 60 000 твоаров.png

Решил, что нужно смотреть в момент обмена что по памяти происходит. Так как после увеличения памяти ситуация была такой, 75% памяти занято и я предполагал, что во время обмена остатков памяти не хватает.

75% памяти занято у сайта битрикс 60 000 товаров.png

Запустили с принудительной выгрузкой фото, понаблюдаем вот такая ошибка при старте появляется. 

discountCard___56f2630a-95af-4c24-9f65-a62ec1e25024.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.

Ответ сервера: MySQL Query Error!

С чем может быть связана проблема? 

Это ошибка базы данных сервера.


В итоге по загрузке RAM, получилось, что основная часть уходит на поддержку основных служб:

3751MB mysqld

2346MB httpd

141MB nginx"

Итого более 6Гб RAM

Судя по данным сейчас память больше 6гб, что на данный момент больше чем было при 4Гб и 6Гб, это вполне могло привести к нарушениям в работе базы данных

Это нормально, что основные ресурсы потребляют такой объем?

Это нормально при таких объёмах каталога и обмене большого количества данных, плюс неизвестно сколько потребляют кастомные скрипты.

Битрикс становится очень прожорливый когда начинает больше 30 000 товаров


Ещё статьи:

21.12.2022 Пример обновление коэффициентов MeasureRatio
$eventManager->addEventHandler("catalog", "\Bitrix\Catalog\MeasureRatio::OnBeforeUpdate", function (\Bitrix\Main\Event $event) ID: 424

21.12.2022 Пример события OnSaleOrderSaved
$eventManager->addEventHandler("sale", "OnSaleOrderSaved", ['OrderEvents', 'OrderServicesCollection']); ID: 423

12.12.2022 Корзина пользователя в init.php
Формируем корзину текущего пользователя
$query = CSaleBasket::GetList(array(), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL"));
Получаем данные по товарам
$dbElement = CIBlockElement::GetList( Array(), Array('ID'=>$arPRODUCT_ID), false, false, array('ID','IBLOCK_ID','PROPERTY_IMAGES') ); ID: 422

© 2015-2022 Web админ
Связаться по WhatsApp