AWS RDS MariaDB зависания необходимо перезагрузить

Вопрос или проблема

Мы работаем с экземпляром AWS RDS MariaDB в течение нескольких лет без каких-либо проблем. На этой неделе два наших экземпляра зависли.

Это потребовало от нас жесткой перезагрузки RDS вручную из консоли AWS. Только после жесткой перезагрузки (5-10 минут) экземпляр снова начинает работать и отвечает.

Симптомы

  • База данных полностью не реагирует
  • Окно журналов в консоли AWS показывает “нет журналов”, что неправильно, потому что журналы определенно есть
  • Мониторинг и журналы перестают полностью сообщать метрики
  • Метрика EBSByteBalance% резко падает до 0
  • База данных отображается как “Доступна”

Ниже представлено, как выглядит EBSByteBalance%:

вставьте описание изображения здесь

Анализ

  • Нет изменений в наших нагрузках
  • Внешний трафик выглядит совершенно нормальным и ожидаемым, нет странных внешних взаимодействий
  • Нет плохих запросов при просмотре движка базы данных
  • В панели состояния AWS не сообщается о проблемах

Что здесь происходит? Это произошло с двумя базами данных с совершенно разными типами нагрузок.

Ответ или решение

Разбор проблемы зависания экземпляров AWS RDS MariaDB и их перезагрузка

Ваша ситуация с экземплярами AWS RDS MariaDB, которые внезапно стали непрерывно зависать, требует внимательного анализа множества факторов, так как данный сценарий может быть вызван различными причинами. Давайте рассмотрим основные аспекты проблемы и возможные пути её разрешения.

Описание проблемы

На протяжении нескольких лет ваши экземпляры MariaDB работали без сбоев, однако на этой неделе два экземпляра столкнулись с серьёзной проблемой: они полностью стали недоступными. Вот основные симптомы:

  1. Полная недоступность базы данных: Пользователи не могут выполнять запросы.
  2. Отсутствие логов: В логах AWS Console указано "нет логов", несмотря на наличие ожидаемых записей.
  3. Остановка отчетности метрик: Все метрики по мониторингу и логам перестали обновляться.
  4. Падение метрики EBSByteBalance% до нуля: Это может указать на проблемы с дисковыми операциями или ресурсами.
  5. Статус экземпляра "Available": Несмотря на фактическую неработоспособность, экземпляр показывается как доступный.

Анализ ситуации

Проведя анализ описанных симптомов, можно выделить несколько ключевых моментов:

  • Отсутствие изменений в рабочей нагрузке: Это указывает на то, что внезапные проблемы могут быть вызваны внутренними или внешними факторами инцидента, а не нагрузкой приложения.
  • Нормальная внешняя активность: Отсутствие аномальных взаимодействий с внешними системами предполагает, что проблема может быть только локальной, т.е. непосредственно в среде RDS или на уровне сети.
  • Отсутствие «плохих» запросов: Нет никаких признаков того, что SQL-запросы могут быть причиной зависаний.

Возможные причины проблемы

На основании указанных симптомов и анализа, мы можем рассмотреть следующие потенциальные причины зависания ваших экземпляров MariaDB:

  1. Нехватка ресурсов: Можно допустить, что экземпляры стали испытывать недостаток производительности из-за превышения лимитов процессора или памяти, что приводит к зависанию. Даже если внешне нагрузки не изменились, кардшему изменены внутренние параметры (например, автоматическое увеличение размеров).

  2. Проблемы с IOPS или EBS: Метрика EBSByteBalance% упала до нуля, что указывает на возможные проблемы ввода-вывода (IO) на уровне Elastic Block Store (EBS). Это может происходить в результате высокой нагрузки на дисковую подсистему или ошибок в самой файловой системе.

  3. Блокировки в транзакциях: На уровне MariaDB могут возникать блокировки, которые мешают выполнению других запросов. Это может не проявляться в виде логов, если блокировки происходят на уровне хранения данных.

  4. Ошибки конфигурации: Сетерная или логическая ошибка в конфигурации MariaDB и AWS RDS может привести к неправильным настройкам, что может быть причиной зависаний.

Рекомендации по устранению проблемы

Для решения данной проблемы рекомендуется выполнить следующие действия:

  1. Мониторинг производительности: Используйте AWS CloudWatch для получения более детализированной информации о производительности экземпляров (CPU, память, базовые EBS метрики).

  2. Используйте AWSDocDB и Enhanced Monitoring: Это поможет углубленно анализировать состояние базы данных и производить диагностику в режиме реального времени.

  3. Проверьте конфигурацию: Пересмотрите параметры конфигурации MariaDB. Возможно, стоит провести настройку параметров производительности, таких как innodb_buffer_pool_size и другие.

  4. Обновление: Проверьте, нет ли доступных обновлений для RDS MariaDB, которые могут содержать исправления для известных проблем.

  5. Отключение/включение дополнительных функций: Если используются какие-либо дополнительные функции или параметры, связанные с производительностью (например, автоматическое увеличение размеров), временно отключите их, чтобы отследить влияние на производительность.

Заключение

Проблема, с которой вы столкнулись, имеет множественные аспекты, и требуется системный подход для её диагностики. Основная цель — выявить коренные причины зависания и предпринять шаги для предотвращения повторения инцидента. Важно проводить регулярные проверки системы и мониторинг состояния баз данных для более раннего выявления проблем и в дальнейшем минимизировать потенциальные риски.

Если же после всех предложенных мер проблема повторится, следует рассмотреть возможность обращения к поддержке AWS для более глубокого анализа.

Оцените материал
Добавить комментарий

Капча загружается...