Когда я запускаю команду «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) недостаточно сконфигурирован или перенастроен, вы потенциально можете тратить время на очистку кешей без наличия новых запросов.