首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL的CPU时间真的会这么长吗?

问MySQL的CPU时间真的会这么长吗?
EN

Stack Overflow用户
提问于 2019-10-01 18:48:20
回答 1查看 64关注 0票数 0

我们最近在一台新服务器上运行了很多复杂的脚本,这需要对MySQL进行大量的监控。服务器一次最多只能运行20个小时。但是,不管Mysql的cpu使用率如何,它的使用时间一直在增长。

我猜这是因为它是一个持续运行的服务,只是想确认这一点。

根据top的说法,mysql已经在380:09.23上运行。

代码语言:javascript
复制
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1697 mysql     20   0 2687376 504752  10036 S  82.3  6.3 380:09.23 mysqld
EN

回答 1

Stack Overflow用户

发布于 2019-10-01 20:05:38

MySQL是一个多线程服务。如果它一次处理多个查询,消耗一个以上的CPU核心(在顶部的CPU列中显示超过100% ),则在TIME+列中为这一秒的物理时间添加超过一秒。

您可以通过执行以下命令来监视当前在复合MySQL进程中运行的线程

代码语言:javascript
复制
SHOW PROCESSLIST;

在mysql控制台中(即通常向此服务器发出SQL语句的位置)。

添加:

我有一个低吞吐量的MySQL 5.6实例,自2018年1月4日以来一直没有重启过。它运行在debian的裸机机器上,它通常不会有很多空闲的连接挂起(我现在看到两个)。从那时起,它已经消耗了大约2225分钟的CPU时间:

代码语言:javascript
复制
$ ps -eo pid,lstart,time,cmd | grep mysql
 3895 Thu Jan  4 23:09:11 2018 1-13:04:45 /usr/sbin/mysqld ...

代码语言:javascript
复制
$ date; ps aux | grep mysql
Tue Oct  1 16:37:16 UTC 2019
mysql     3895  0.2 10.7 439512 223352 ?       Sl    2018 2224:37 /usr/sbin/mysqld

$ date; ps aux | grep mysql
Tue Oct  1 18:57:50 UTC 2019
mysql     3895  0.2 10.7 439512 223352 ?       Sl    2018 2224:55 /usr/sbin/mysqld

因此,至少对于该实例而言,在未实际执行工作的情况下添加TIME+度量是不正常的。

我怀疑,在虚拟环境中,如果没有相应的%CPU,TIME+可能会增加,但您仍然需要监视进程列表,并可能显示引擎INNODB状态,以捕获在这种情况下消耗CPU周期的是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58183236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档