在我的云服务器上,MySQL CPU 使用率在格林威治标准时间周日下午 1 点跃升至 100% 以上。
我该如何排除此问题的原因?
我被告知运行 cmd'顶部'在服务器上,但这只告诉我以下内容:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2326 mysql 20 0 2182m 128m 5264 S 99.8 1.3 1610:50 msqld
我的理解是 MySQL 正在使用 CPU。运行后:
SHOW FULL PROCESS LIST;
我发现了这一点(*** 是私人信息):
| Id | User | Host | db | Command | Time | State | Info |
| 288484 | *** | localhost | *** | Query | 93110 | Copying to tmp table | SELECT SQL_CALC_FOUND_ROWS wp_***_posts.* FROM wp_***_posts INNER JOIN wp_***_postmeta ON (wp_h |
由于时间以秒为单位,因此从我运行命令开始,这个过程就在周日下午 1 点开始,这是有道理的。
答案1
答案2
如果您的查询已经运行了一天以上,那么您就遇到了一个需要解决的大问题(不要介意您的服务器上还发生了什么其他事情)。
首先要做的是终止该查询(使用 mysqladmin),然后您需要花一些时间查看数据库以及其中发生的事情。根据 MySQL 的配置方式,您应该有一个慢查询日志。理想情况下,应将其配置为记录全部查询,而不仅仅是慢查询。有可用的工具可以读取这些信息并确定导致最大负载的原因 - 但如果您使用的是 MyISAM 引擎,您还需要检查并发问题。这只是开始发现问题——你仍然需要解决它。
你确实需要大量学习,或者寻求一些专业的帮助。