powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL сломался
15 сообщений из 15, страница 1 из 1
MySQL сломался
    #39509881
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База 230 гигов, нагрузка не особо большая, 2 процессорная NUMA машина 128Гб памяти, mysql в top нагрузку показывает 300%, LA ~ 5
конфиг такой

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 512M
innodb-flush-log-at-trx-commit = 2
innodb-buffer-pool-size        = 72G
innodb-file-per-table          = true
innodb-io-capacity             = 80000
innodb-write-io-threads        = 24
innodb-read-io-threads         = 24
innodb-buffer-pool-instances   = 24
innodb-log-buffer-size         = 128M
innodb-sort-buffer-size        = 64M
innodb-numa-interleave         = ON

Код: plaintext
1.
2.
3.
# numastat -pm | grep mysql
35008 (mysqld_safe)                 0.00            0.75            0.75
36012 (mysqld)                  49900.79        22251.62        72152.41

С вчера началась какая-то странная фигня.
Приложение время от времени стало сыпать в лог сообщения при попытке удалить из одной таблицы:

Код: plaintext
General error: 1205 Lock wait timeout exceeded; try restarting transaction. The SQL statement executed was: DELETE FROM `fh_user_file_log` WHERE user_id=:ycp0.

Подумал сначала что данных много, проанализировал несколько таких запросов и увидел, что там пара десяткой записей (а есть запросы где и по PK из этой таблицы происходит удаление и выпадает в такую же ошибку)

В таблице около 8кк записей.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE TABLE fh_user_file_log (
  id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  user_file_id char(13) NOT NULL,
  date datetime NOT NULL,
  reason tinyint(4) DEFAULT NULL,
  user_id int(10) UNSIGNED DEFAULT NULL,
  PRIMARY KEY (id),
  INDEX FK_user_file_log_user_file (user_file_id),
  INDEX IX_user_file_log_date (date),
  INDEX IX_user_file_log_user_date (user_id, date),
  UNIQUE INDEX UK_user_file (user_file_id, reason)
)
ENGINE = INNODB
AUTO_INCREMENT = 321817977
AVG_ROW_LENGTH = 89
CHARACTER SET utf8
COLLATE utf8_general_ci;



Кстати это перкона кластер из 2х мастер нод.
Если перевести запросы на другую ноду, то сначала вроде все работает нормально, потом начинаются эти проблемы.
Если ноду перезапустить, она 30-60 минут работает нормально.

PS^ Есть еще и другая таблица со схожей проблемой, все появилось одновременно.
Там удалений из таблицы нет, с вот этим UPDATE вижу постоянно проблемы.
Код: sql
1.
UPDATE `fh_user_file` SET `date_updated` = NOW ( ) WHERE `fh_user_file` . `id` = ? 


к той таблице очень много разных запросов, но проблемы почему-то только с этим.

Куда копать?
...
Рейтинг: 0 / 0
MySQL сломался
    #39509886
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, самое главное, запросы висят в статусе

Код: plaintext
Searching rows for update

Код: sql
1.
UPDATE `fh_user_file` SET `deleted`=1, `date_updated`=CURRENT_TIMESTAMP WHERE `fh_user_file`.`id`='1690dee813985' AND (deleted = 0)
...
Рейтинг: 0 / 0
MySQL сломался
    #39510121
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Код: plaintext
user_id=:ycp0
это что ?
...
Рейтинг: 0 / 0
MySQL сломался
    #39510131
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prepared statemend
...
Рейтинг: 0 / 0
MySQL сломался
    #39510132
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t*
...
Рейтинг: 0 / 0
MySQL сломался
    #39510160
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Покажите DDL таблицы `fh_user_file`.
Что-то мне не нравится фрагмент `fh_user_file`.`id`='1690dee813985'
...
Рейтинг: 0 / 0
MySQL сломался
    #39510166
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока под рукой нет.
А чем не нравится? Там поле CHAR(13) NOT NULL PRIMARY KEY
...
Рейтинг: 0 / 0
MySQL сломался
    #39510167
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оно 5 лет работало нормально, а тут началась эта фигня.
...
Рейтинг: 0 / 0
MySQL сломался
    #39510188
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Может сама база поломалась? mysqlcheck запускали?
...
Рейтинг: 0 / 0
MySQL сломался
    #39510205
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пробовал пересоздать таблицу fh_user_file_log (INSERT INTO ... SELECT ...)
Еще партиции добавил.
Операция прошла без проблем, потом переименовал старую в old, новую поставил на место старой, но ничего не изменилось.
...
Рейтинг: 0 / 0
MySQL сломался
    #39510215
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас проблем нет.
Просто само все стало работать. Единственное, я убавил innodb-buffer-pool-size = 60G
и выключил innodb-numa-interleave = ON (хотя я его включил уже после того, как проблемы начались, но ничего не изменилось вроде).
...
Рейтинг: 0 / 0
MySQL сломался
    #39510220
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть подозрение, что приложение временно увеличило число запросов UPDATE к таблице fh_user_file и начались эти проблемы.
...
Рейтинг: 0 / 0
MySQL сломался
    #39510479
Фотография Karbafos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

ты дедлоков никогда не видел что ли?
у тебя транзакции блокируют друг друга и какие-то вылетают по таймауту.
...
Рейтинг: 0 / 0
MySQL сломался
    #39510492
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Karbafosу тебя транзакции блокируют друг друга и какие-то вылетают по таймауту.
Как они могут заблокировать друг друга если в транзакции всего 1 запрос на UPDATE по PK ?
...
Рейтинг: 0 / 0
MySQL сломался
    #39510495
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И почему запрос в это время висит в статусе Searching rows for update ?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL сломался
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]