找出哪个MySQL/MariaDB用户/数据库/表导致CPU使用率高



我们的服务器上运行了许多使用不同数据库的应用程序。mariadb进程目前使用了85%的CPU,这真的很高。我们想找出我们可以尝试和优化的地方。是否可以按数据库用户、数据库或表跟踪CPU使用情况?(显然,粒度越细越好,但即使是像每个用户%这样的东西也会有很大帮助(
MySQL慢速查询日志已经在运行,但结果并不多。我们还尝试过在CPU峰值时执行SHOW PROCESSLIST;,并在用户统计数据中查看CPU_TIME,但这并没有太大帮助。

启用userstat插件后,您可以在information_SCHEMA.user_STATISTICS表中找到每个用户的CPU使用情况信息。参见

https://mariadb.com/kb/en/user-statistics/

https://mariadb.com/kb/en/information-schema-user_statistics-table/

打开慢日志并将long_query_time设置为较低。

几个小时后,使用pt-query-digestmysqldumpslow -s t汇总输出文件。

注意:slowlog记录的是运行时间,而不是CPU时间。但一般来说,它比CPU更重要。两者之间存在着相关性。

更多:慢速日志

最新更新