我最近注意到我的MySQL服务器消耗exception大量的CPU资源:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2427 mysql 20 0 2198m 161m 5568 S 1600.0 4.4 5121391h /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql
我附上了两个文件 – 一个用我的MySQLconfiguration, 另一个用mysqlreport输出。 MySQL错误日志是干净的。 mytop显示的logging很less,但是它们一直在改变,很难理解这样的过载是否是由于这些logging引起的。 有时候,进程列表甚至是空的。
我也附上我的服务器的详细信息 。 我会认为顶部显示错误的信息)。 感谢任何帮助。
停止查看系统并开始查看MySQL正在发生的事情。 即使是对报告最简单的一瞥也清楚地表明,你有一些令人难以置信的低效率的查询。 工作适当的索引和优化,我相信你的问题将消失。
我曾经看到我的硬盘在我的MySQL服务器坏了,然后CPU射击。
我注意到了一些您可能希望更详细地研究的内容:
__ Bytes _______________________________________________________________ Sent 743.25M 960.3k/s Received 9.79M 12.6k/s
这将带你到8Mbps(兆位/秒),再加上开销,会带给你非常接近最大的一个典型的10Mbps连接。
__ InnoDB Buffer Pool __________________________________________________ Reads 9.81M 12.7k/s __ InnoDB Data, Pages, Rows ____________________________________________ Rows Read 73.43M 94.9k/s
我不确定你在做什么,但是这些看起来非常非常高,可能超出了低端专用服务器可以轻松处理的程度。 如果你真的需要这个数量的stream量,你将不得不看更多和/或更大的硬件。 我将包括一些基本的分析和基准testing,以确定您需要多less,以及您当前的硬件可以支持多less。