2021-09-06
从TOP看到的内存比从mysql里面看到的多
从TOP看到的内存比从mysql里面看到的内存(sys.memory_global_total)要多得多,P_S一开始就配置了,且大页已经关闭。这个有什么排查思路吗
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
从TOP看到的内存比从mysql里面看到的内存(sys.memory_global_total)要多得多,P_S一开始就配置了,且大页已经关闭。这个有什么排查思路吗
TOP 比 sys.memory_global_total 准确一些,而
sys.memory_global_total 统计值不准可能有三个原因
1)没有在实例启动时就开启所有的内存监控项
MySQL 8.0 之前版本默认只开启了performance_schema相关内存时间监控项。其他内存监控项默认都未启用,如需启用需要在配置文件中显示指定,可以通过如下方案启动所有内存监控项:
在配置文件中添加 performance-schema-instrument=‘memory/%=ON’ 重启实例
2)只启用了部分内存监控项
确认是否开启了所有的内存监控项
select * from performance_schema.setup_instruments where name like ‘%memory%’ and enabled!=‘YES’;
3)有部分原本就没有进行统计监控
即使我们在数据库启动时就开启了所有的内存监控项,我们通过 sys.memory_global_total 统计到的数据库使用内存量和操作系统层面还是很存在差异。这是因为 mysql 并没有监控所有libiary 的内存分配,也没有监控实例把libiary导入到内存产生的内存使用量。
官方文档:https://dev.mysql.com/doc/refman/8.0/en/memory-use.html
仅供参考,希望可以帮助到你。
评论
有用 1
墨值悬赏