Я переместил производственный сервер на OpenVZ, что я делал много раз раньше, только на этот раз это повлияло на поведение транзакции некоторых операций.
Все мои таблицы innoDB. Я не менял никаких параметров из их состояния «из коробки».
Некоторые запросы к JBoss приводят к транзакциям, выполнение которых занимает ровно 10 секунд, но только с перерывами. Обычно они молниеносны.
Я не могу найти ничего в my.cnf или в переменных Mysql, что соответствует этой 10-секундной задержке. Я могу видеть транзакции, появляющиеся в Innotop, но если я переключусь в режим Q-запроса, я не смогу увидеть полный запрос, нажав f.
Отката вроде нет, потому что даже при задержке функциональность не нарушается. JBoss имеет тайм-аут транзакции 300 с в соответствии со стандартной конфигурацией.
Я не вижу никаких ограничений в / proc / user_beancounters (OpenVZ отслеживает, когда виртуальные машины превышают свои квоты ресурсов для тех, кто не знает, что это такое).
Я изо всех сил пытаюсь определить, откуда взялось это узкое место.
Хорошо, теперь я могу ответить на этот вопрос.
Я читал, как Mysql обрабатывает соединения, и оказалось, что он, по-видимому, всегда пытается выполнить обратный поиск, если вы не скажете ему этого не делать, и через 10 секунд пытается это сделать.
Я не знаю, почему время от времени прерывалось в моей сети, но добавив:
пропустить имя-разрешение
на my.cnf проблема исчезла.
На самом деле это не имеет для меня полного смысла, потому что Jboss использует объединенные соединения, которые должны оставаться активными из-за объема регулярной активности, но неважно.