Johopig 发表于 2022-8-25 11:41:41

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

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

MySQL提供的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汇总表里完全不一样:'(

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显示的和当前进程显示的内存使用量差别好大,而且过了很长时间也还是保持这个差别:'(
页: [1]
查看完整版本: MySQL一般通过什么指标去监控除常驻内存外的内存使用量?