This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема Random MySQL crash

VPNumLock

Активный участник
17 Янв 2021
134
31
40
Всем привет!
Такая проблема...

Сервер работает, все круто, спустя некоторое время, примерно часов 5-6 работы сервера, при сохранении базы данных вылазит ошибка:

Queue is full. Waiting... (hint: increase queue size by configuring "net-queue-size-multiplier": 1-30)

После чего идут вот такие сообщения

Detected thread scheduler timeout: request ID: 0; pending count: 4


Я перекопал весь MySQL, поменял дофига значений, но ошибка не уходит.
Кто сталкивался с таким? И что мне нужно сделать?

Копеечку тому кто поможет это решить.
 
Реакции: levansy

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
572
212
121
Предположение, что ты просто забиваешь бд запросами. Нужно код видеть.
 

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
572
212
121
Это происходит при сохранении DataBase
Это я понял из 1 поста

Вариантов несколько:
  • не использовать это субд, использовать более стабильное
  • оптимизировать код. Запросы в бд должны быть распределены. Обновил информацию - записал. А не сохранение всей инфы за раз каждую секунду/минуту
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
net-queue-size-multiplier сколько стоит у тебя?
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
max_allowed_packet
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
Чтобы увеличить max_allowed_packet, открой my.ini/my.cnf в разделе [mysqld] найди max_allowed_packet. После внесения изменений придется перезапустить сервер(mysql + RageServ).
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
Ну а лучше оптимизировать код. Что именно сохраняешь в бд?
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
видимо для твоих запросов это мало) Есть возможность отловить конкретный запрос? и залогировать его?
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
Да, есть. Включил откладку, пока все нормально.
У меня реализованы подобные запросы через интервалы. Для каждого игрока интервал, который выполняется раз в 15 минут, вызывая функцию проверки на изменение его данных если к примеру изменились данные о местоположении, и здоровью то в базу отправляется запрос на изменение только этих строк. А если изменений не произошло, то и запроса не происходит. (При проверке, не отправляются запросы к бд. Хранится снимок бд, и с ним сравниваются текущие данные персонажа. После запроса, данные в снимке бд меняются. И так по кругу.) По мне это позволит распределить запросы по времени и по их размеру.
 

levansy

Новый участник
12 Ноя 2020
2
2
60
Привет, у меня такая же проблема, как и у тебя
Вы нашли способ решить эту проблему?