Как найти в базе данных mysql мои key_buffer и innodb_buffer_pool, конкурирующие

308
MohanBabu

Инфраструктура сервера:
у меня есть сервер Centos, работающий под управлением nginx + wordpress + mysql.

Проблема:
MySQL часто получает shutodown и WordPress, показывая предупреждения «не может подключиться к базе данных».

Обнаружена проблема:
Кажется, проблема связана с размером innodb_buffer_pool.

Анализ:
После проверки журналов и чтения о пуле буферов я понял, что если я использую смешанные механизмы хранения (myISAM и innodb). Действительно, это правда, что я использовал оба двигателя.

Вопросы:

  1. Как найти, если MySQL буфер борется друг с другом во время работы?
  2. Если возможно найти с помощью какой-то методологии, может ли она быть автоматизирована путем отправки электронной почты / смс?
3
Не забывайте о http://dba.stackexchange.com/ Pimp Juice IT 7 лет назад 0
Это часто встречающаяся проблема, и на самом деле это не проблема MySQL. MySQL является жертвой того, что Apache является проблемой памяти. http://dba.stackexchange.com/a/25171/11651 Michael - sqlbot 7 лет назад 0
* Я использую nginx. Вы сталкиваетесь с той же проблемой в вашей настройке с Apache? @ Michael-sqlbot MohanBabu 7 лет назад 0
Нет, я не испытываю этого. Я всегда запускаю MySQL на машине и держусь как можно дальше от MyISAM. Если вы нашли решение, опубликуйте его как ответ, объяснив, что вы нашли, и как будущие посетители могут использовать его для решения той же проблемы. Michael - sqlbot 7 лет назад 1

1 ответ на вопрос

1
RolandoMySQLDBA

Короткий ответ

  • MyISAM кэширует индексы только из .MYIфайлов.
  • InnoDB кэширует страницы данных и индексов (InnoDB Page is 16K)

Невозможно конкурировать между буфером ключей и буферным пулом InnoDB, если не существует проблем с выделением памяти за пределами mysqld (обычно из-за большого количества соединений с БД, когда каждое соединение с БД выделяет много памяти для своего собственного сеанса)

Более длинный ответ

Смотрите мои старые сообщения