GreatSQL社区

搜索

[已解决] MySQL一般通过什么指标去监控除常驻内存外的内存使用量?

701 5 2022-8-25 11:41
一些常驻内存项例如ibp、xcom cache、内存分配管理器等,会长时间保持在高水位,这导致了内存监控不能够有效的反应当前实际用量,并且会长期触发内存监控告警。那么一般是通过什么指标去监控除常驻内存、共享内存外的内存使用量呢?

MySQL提供的5个内存汇总表似乎存在着重叠的部分,并且各个汇总表内实际上是包括了一些共享内存的
Snipaste_2022-08-25_11-41-18.png
全部回复(5)
yejr 2022-8-25 13:58:46
其实直接观察OS层mysqld进程的内存消耗就可以。
或者观察sys.memory_global_total视图。
Johopig 2022-8-25 17:05:47
yejr 发表于 2022-8-25 13:58
其实直接观察OS层mysqld进程的内存消耗就可以。
或者观察sys.memory_global_total视图。 ...

观察OS层mysqld进程内存消耗不太准,有一部分因为内存管理器(ptmalloc)的原因没有释放,实际使用内存是要少一些的

sys.memory_global_total实际上是用了memory_summary_global_by_event_name的汇总,请问这个汇总表会把用户连接线程使用的内存(join_buffer等等)一起计算吗?
Johopig 2022-8-25 17:23:51
本帖最后由 Johopig 于 2022-8-25 17:32 编辑
Johopig 发表于 2022-8-25 17:05
观察OS层mysqld进程内存消耗不太准,有一部分因为内存管理器(ptmalloc)的原因没有释放,实际使用内存是 ...

现在观察memory_summary_global_by_event_name和memory_summary_by_user_by_event_name的汇总似乎是不重叠的,group by event name后sql的内存用量在global汇总表和user汇总表里完全不一样
2022-08-25_17-30-13.jpg 2022-08-25_17-30-08.jpg
yejr 2022-8-26 09:23:36
Johopig 发表于 2022-8-25 17:23
现在观察memory_summary_global_by_event_name和memory_summary_by_user_by_event_name的汇总似乎是不重叠 ...

看下sum的总量呢
Johopig 2022-8-26 10:31:35
本帖最后由 Johopig 于 2022-8-26 10:58 编辑
yejr 发表于 2022-8-26 09:23
看下sum的总量呢

你好,请问sum的总量指的是
1. sum(5个汇总表的current_bytes_used);
2. sum(global+user);
3. sum(global)

如果是第1点的话加起来已经超出了当前进程显示的内存使用量;
如果是需要第2点这样操作,因为sys.memory_global_total = global汇总表,是不是代表着官方文档中sys.memory_global_total描述是不准确的

最后麻烦您,我其实想确认的是如何监控整个MySQL当前的实际使用量(排除内存管理器的干扰),因为我看sys.memory_global_total显示的和当前进程显示的内存使用量差别好大,而且过了很长时间也还是保持这个差别
Johopig

2

主题

0

博客

11

贡献

新手上路

Rank: 1

积分
18

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-5-12 23:09 , Processed in 0.021534 second(s), 18 queries , Redis On.
快速回复 返回顶部 返回列表