MySQL是一款常用的关系型数据库,它的性能往往直接影响着整个应用系统的性能。在开发与维护过程中,我们需要经常了解MySQL的各项指标,如CPU使用率。
查看MySQL CPU使用率,我们可以使用操作系统提供的工具,如top,htop等。以下是查看MySQL CPU使用率的步骤:
$ top
1、运行top命令,查看当前系统的各项指标,包括CPU使用率。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6574 mysql 20 0 3087344 613540 106296 S 143,5 3,8 242:46.53 mysqld
2、在top命令中,找到mysql的进程ID,可以看到它的CPU使用率是多少,如上面的例子中%CPU为143.5%。
除了使用top命令,我们还可以使用mysql自带的命令SHOW PROCESSLIST,查看MySQL中所有正在运行的进程,包括它们的状态和消耗的资源:
mysql> SHOW PROCESSLIST;
+------+---------------+-----------------+------------------+---------+------+-----------------------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+------+---------------+-----------------+------------------+---------+------+-----------------------------+------------------------------------------------------------------------------------------------------+
| 131 | root | localhost | NULL | Query | 0 | starting | SHOW PROCESSLIST |
| 1495 | test_user | 192.168.0.111 | test_db | Sleep | 1 | | NULL |
| 1502 | test_user | 192.168.0.111 | test_db | Query | 0 | Copying to tmp table on disk | SELECT COUNT(*) FROM test_table WHERE create_time >= '2022-01-01 00:00:00' AND create_time < '2022-01-01 01:00:00' |
| 1503 | test_user | 192.168.0.111 | test_db | Sleep | 1 | | NULL |
| 1504 | test_user | 192.168.0.111 | NULL | Query | 0 | starting | SHOW PROCESSLIST |
+------+---------------+-----------------+------------------+---------+------+-----------------------------+------------------------------------------------------------------------------------------------------+
5 rows in set (0.00 sec)
通过查看SHOW PROCESSLIST的结果,我们可以从INFO字段中找到正在运行的SQL语句,从而确定那些语句占用了较高的CPU资源,进而优化它们。