首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL QPS调试?

MySQL QPS调试?
EN

Database Administration用户
提问于 2021-02-19 14:36:55
回答 2查看 235关注 0票数 0

在zabbix仪表板上间隔5分钟的时间内,我在DB服务器上看到了5 Kqps。但是在这段时间内,所有的最大查询(删除/选择/插入/更新/替换)的总和为1300。不知道为什么最大5kqps显示,但所有的最大值之和是1300?我的目标是找出哪个特定的DML(insert/update/select/delete)在这里造成高QPS,并从这里得到一些方向?另一点是要理解,除了这些DML之外,还有什么能引起高QPS的东西吗?这样我就可以朝正确的方向移动了。我有点困惑,为什么Max QPS可以是一些单独的DML QPS,或者我在这里遗漏了什么?

此外,IOPS在此期间显示了1Kops,如果每个查询都命中磁盘,那么它不应该接近5Kops吗?差距在哪里?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2021-02-21 01:46:11

测试运行前后的SHOW GLOBAL STATUS。然后看看Com_...QuestionsQueries的不同之处。

Com_insert这样的东西会告诉您有多少INSERTs

如果您有存储的例程,QuestionsQueries将不一样,差异是由于例程中的一个计数语句;另一个不是。

IOPs与qps的关系可能很小。如果一个SELECT扫描的是一个没有缓存在内存中的巨大表,它可能会导致数百万的IOP。OTOH,一个1000个简单的SELECTs,其中所有必要的数据都被缓存,可能会导致零IOP。

对于所有查询,QPS并不像时间之和那么重要。在上一段中,可以说,一个大查询对系统的影响可能比上千个小查询的影响更大。

若要查找哪些语句是调皮的,请使用慢速日志。它将捕获DDLs和DMLs。请参阅http://mysql.rjweb.org/doc.php/mysql_analysis#slow_查询_和_慢速日志

票数 2
EN

Database Administration用户

发布于 2021-02-21 00:39:15

作为SQL,show global status like 'com_%'将显示查询类型的细分。任何大量的更新、替换、删除都应该表明您不应该使用MyISAM。

如果有5kqps,SHOW FULL PROCESSLIST在任何时候都应该给您一个活动示例。

不要担心IOP,专注于查询并观察由此带来的好处。如果查询包含到主键,则没有理由导致磁盘IOP。还使用了文件系统缓存,因此这是另一个阻止IOP的缓冲区。

如果是IOP(硬件不处理),这就是问题所在,请考虑迁移到InnoDB。如果您对数据进行了评估,请移动到InnoDB。

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

https://dba.stackexchange.com/questions/285693

复制
相关文章

相似问题

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