Как избавиться от ошибки «Mysql server has gone away» в битриксе?
Всем привет.
На серваке под centOS с Bitrx-env постоянно падает обмен с 1С с ошибкой "Mysql server has gone away" и при пользовании сайтом случается, что появляется та же ошибка. $DB->Query("SET wait_timeout=57600"); в after_connect.php
и max_allowed_packet=500M и в my.cfg
Не помогло.
Установлен bintrix env.
MySQL 5.5.54
PHP - 7.0.17
Товаров 2638
С картинками
Сжатие zip включено, с ним к стати чуть лучше проходит, позже ошибка.
Если снизить количество товаров(отбор выставить) то выгружается норм.
Пытался сделать выгрузку по 10 по 150 по 600 по 1000 товаров всё одно.
Сервак:
512 мб озу
Проц: 2,60 Ггц
К тому-же я и Казахстана и у нас тут по обмену с 1С вообще всё печально, более норм только на управление торговым предприятием сделано и реалтайма нет.
А сервак брали такой т.к. по стоимости устроил. Ну скажи заказчику что надо хотя бы 1гб. На серваке с 1гб у меня работало нормально, у другого клиента при примерно тех же условиях.
С такой ошибкой надо более детально разбираться, я бы как временным решением предложил выгружать через csv файлы, то есть собирание все во временный файл потом load in file в mysql (очень быстрый метод 2 ляма строк за 10 сек в базу вгоняет на слабой машинке)
А если по делу то проанализируйте сколько времени работает этот чудо модуль 1c тут как мне кажется проблема в коннекте который падает или слишком большой запрос шлете.
Я уже достаточно долго пытаюсь решить, недели три понемногу думал как решить такое. Многочисленные поиски в сети показали, что проблема может быть в чём угодно, в нехватке мощностей в том числе.
Вообще раньше сервак был другой, не могу сказать какой т.к. это был шаред-хостинг, на нем сайт работал очень медленно, бывала по 20 секунд генерил меню из инфоблока, но зато без ошибок, когда поставили vds всё стало летать, к тому же я переделал сайт почти полностью с поддержкой кеширования и композита, сайт сейчас очень быстрый, но вот ошибка эта как ложка говна в бочке мёда.
Вячеслав Шевченко: Вообще в логи пишет ? (/var/log/mysql/error.log)
Тут как бы понятно или так mysql настроен что бы умирать после запроса или же отправлен слишком большой запрос что mysql думает что с клиентом что-то не так и закрывает соединение.
Включите логирование всего запросов mysql тогда уже и все будет ясно что именно вырубает mysql.