Mysql总是有很高的cpu使用率

np8igboo  于 2023-04-19  发布在  Mysql
关注(0)|答案(1)|浏览(139)

为什么我的mysql运行这个命令,吃了很多我的cpu(55 - 120%)我已经尝试了一切。显示进程,并优化我所有的查询,慢查询日志,增加缓冲区大小。
我也一遍又一遍地杀死这个进程,但它一直在运行。这个命令是做什么的?为什么我的mysql在我的服务器上占用了很多cpu?我无法追踪高cpu使用率的原因。

命令:

/usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --log-error=/var/lib/mysql/srv1.myserver.com.err --pid-file=/var/lib/mysql/srv1.myserver.com.pid
lpwwtiir

lpwwtiir1#

影响数据库性能的因素有很多。这个问题没有直接的解决方案。包括硬件和软件在内的多个因素对此负责。下面是需要考虑的几个要点:
1.应用程序的高用户负载
1.数据库服务器的硬件配置较低或不兼容(处理器、内存、SWAP文件大小等)
1.数据库服务器配置不正确

  • 使用一些工具,如Teamquest来检查系统性能,并观察CPU使用与用户数。找出正确的用户数在您的系统在特定的时间段。使用下面的命令为这个SELECT username, count(username) FROM session_table_of_application WHERE 1 GROUP BY username;你将能够找到最大数量的用户时,CPU使用率变高。
  • 您还应该检查在此期间的内存使用情况。Teamquest也会帮助您。运行[MySQL Tuner][2]以查找MySQL设置中的不匹配。
  • 运行以下命令检查全局状态:select * from information_schema.GLOBAL_STATUS
  • 运行以下命令,检查以下重要的系统变量:show variables like 'innodb_buffer_pool_size';show variables like 'innodb_flush_log_at_trx_commit';show variables like 'innodb_open_files';show variables like 'innodb_table_locks';show variables like 'innodb_thread_concurrency';show variables like 'join_buffer_size';show variables like 'key_buffer_size';show variables like 'max_connections';show variables like 'max_delayed_threads';show variables like 'max_heap_table_size';show variables like 'max_tmp_tables';show variables like 'thread_cache_size';show variables like 'tmp_table_size';show variables like 'wait_timeout';show variables like 'myisam_sort_buffer_size';
  • 这可能是有可能的,这是利用了大量的CPU资源的一些查询.所以,你必须检查在此期间运行的查询列表.为此运行下面的命令:SELECT HOST,COMMAND,TIME,INFO FROM INFORMATION_SCHEMA.PROCESSLIST where command !='sleep' and time>10 and command !='Binlog Dump' order by TIME desc;

分析你所有的观察结果,然后只有你会发现这个问题的原因。可能是硬件负责或需要纠正MySQL系统变量。

相关问题