Рейтинг:0

Мониторинг использования байтов больших буферных пулов MySQL InnoDB?

флаг jp
Vjz

Я пытаюсь отслеживать общее количество используемых байтов в буферном пуле MySQL 5.7 InnoDB, которое может достигать 100 ГБ, используя Innodb_buffer_pool_bytes_data но кажется, что эта переменная состояния представляет собой 32-битное целое число без знака, когда я запрашиваю ее, поэтому она переполняется, когда байты превышают 2 ^ 32.

Кажется, это длинное целое число без знака внутри MySQL (https://github.com/mysql/mysql-сервер/blob/5.7/storage/innobase/include/srv0srv.h#L892)?

Сначала я подумал, что переполнение было в моем стеке мониторинга (Telegraf + InfluxDB + Grafana) —

График Grafana, показывающий переполнение Interger с течением времени, когда Innodb_buffer_pool_bytes_data в настоящее время составляет 490 МБ

- но прямой запрос MySQL, похоже, показывает, что он из MySQL, а не из моего решения для мониторинга:

ПОКАЗАТЬ ГЛОБАЛЬНЫЙ СТАТУС, ГДЕ Variable_name = "Innodb_buffer_pool_bytes_data"

-урожайность 490371968 примерно для той же временной метки, что и в Grafana выше.

Как я могу точно контролировать истинное значение?

Vjz avatar
флаг jp
Vjz
`ПОКАЖИТЕ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ, ГДЕ Variable_name = 'innodb_buffer_pool_size'` 107374182400
флаг ua
Возможно, у вас есть 32-битная компиляция MySQL, ОС или Grafana?
флаг ua
Сколько у вас оперативной памяти?
флаг ua
Каково значение `SHOW VARIABLES LIKE 'innodb_buffer_pool_size';`? Возможно, это около 500M?
Vjz avatar
флаг jp
Vjz
`ПОКАЖИТЕ ПЕРЕМЕННЫЕ, КАК 'version_compile_os'` version_compile_os — Win64 `ПОКАЖИТЕ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ, ГДЕ Variable_name = 'innodb_buffer_pool_size'` innodb_buffer_pool_size составляет 107374182400 байт (~ 107 ГБ) На сервере 130 Гб оперативной памяти. Сервер не был перезапущен в эту временную метку. Нет упоминания о перезапусках в файле журнала MySQL. Использование графана-8.1.5.windows-amd64. Даже если Grafana была 32-разрядной, даже запрос `Innodb_buffer_pool_bytes_data` напрямую с клиентом MySQL выявляет проблему, а это означает, что это не может быть Grafana. @Рик Джеймс
флаг ua
Вручную отслеживайте `SHOW STATUS LIKE 'Innodb_buffer_pool_bytes_data';`, чтобы получить больше информации о том, что происходит. (Кажется, я не знаю ответа.)
Рейтинг:0
флаг ua

Этот график выглядит так, будто MySQL перезапустился (или сервер перезапустился) примерно в 12:16. buffer_pool будет расти, пока не достигнет innodb_buffer_pool_size.

Если у вас недостаточно оперативной памяти для пула буферов (и прочего), это может привести к сбою. Этот параметр должен быть установлен примерно на 70% доступной оперативной памяти.

Vjz avatar
флаг jp
Vjz
Сервер не был перезапущен в эту временную метку. Нет упоминания о перезапусках в файле журнала MySQL. Смотрите мои другие комментарии к Вопросу.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.