我有一个MySQL在我的运行 Linux 的服务器上进程始终在运行,它至少占用 1 个核心的 50% 使用率(我有 8 个核心)...这是进程命令:
/usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --log-error=/var/lib/mysql/server.mydomain.com.err --pid-file=/var/lib/mysql/server.mydomain.com.pid
这个进程在做什么?这不是问题,只是一个问题。
答案1
您需要检查 mysql 守护进程实际上在内部执行的操作。Mysql 有一个内部进程列表,请尝试运行以下命令:
mysql -u root -p -e "SHOW FULL PROCESSLIST"
如果你的密码在你的 ~/.my.cnf 中,你可以使用 watch 以仿 top 格式来监视你的 mysql 进程列表:
watch -n 1 mysql -u root -e \"SHOW FULL PROCESSLIST\"
如果 mysql 一直在执行 50%,那么它可能正在处理某些事情,如果您可以看到查询,那么可能有一种方法可以优化它。
答案2
mytop - 一个用于监控 MySQL 性能的线程和性能的命令行实用程序。使用它,您可以找出哪个进程正在消耗您的资源,并据此进行优化。
优化 mysql 的另一种方法是mysqltuner脚本 - 它只是一个小型的 perl 脚本,当您在您的机器上运行它时,它将提供一个推荐值,以使用您当前的资源设置优化您的 mysql 服务器.....