为什么我的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
1条答案
按热度按时间lpwwtiir1#
影响数据库性能的因素有很多。这个问题没有直接的解决方案。包括硬件和软件在内的多个因素对此负责。下面是需要考虑的几个要点:
1.应用程序的高用户负载
1.数据库服务器的硬件配置较低或不兼容(处理器、内存、SWAP文件大小等)
1.数据库服务器配置不正确
SELECT username, count(username) FROM session_table_of_application WHERE 1 GROUP BY username;
你将能够找到最大数量的用户时,CPU使用率变高。[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';
SELECT HOST,COMMAND,TIME,INFO FROM INFORMATION_SCHEMA.PROCESSLIST where command !='sleep' and time>10 and command !='Binlog Dump' order by TIME desc;
分析你所有的观察结果,然后只有你会发现这个问题的原因。可能是硬件负责或需要纠正MySQL系统变量。