Назад | Перейти на главную страницу

Высокая загрузка ЦП MySQL, но без сложных запросов

Когда я запускаю команду «top» на своем Linux, это показывает, что MySQL использует 400% -500% ЦП. Но когда я запускаю команду «watch mysqladmin pr», чтобы увидеть список запросов, выполняемых MySQL, он показывает только 2, 3 запроса, и это тоже занимает 2, 3 секунды. Команда "top" показывает, что MySQL постоянно меняет использование ЦП, например 130%, 200%, 340%, 230%, 400%, 440%, 635%, 335% и т. Д. но команда "watch mysqladmin pr" не показывает запросы, которые увеличивают загрузку ЦП. Как проверить, почему MySQL использует так много ЦП?

Здесь на ум приходят две вещи:

Наблюдение 1

Когда MySQL вызывает постоянные колебания ЦП, я сначала проверял, какой тип установки MySQL был выполнен. RPM MySQL обычно содержат двоичные файлы, оптимизированные для конкретных платформ. С другой стороны, двоичные файлы MySQL, которые были скомпилированы из исходных текстов, не выглядят скудными и скупыми. Такие двоичные файлы могут быть раздутыми и не оптимизированы во время компиляции для использования памяти.

Наблюдение 2

Если пул буферов InnoDB (innodb_buffer_pool_size) или кэш ключей MyISAM (key_buffer_size) недостаточно сконфигурирован или перенастроен, вы потенциально можете тратить время на очистку кешей без наличия новых запросов.