暂无图片
从TOP看到的内存比从mysql里面看到的多
我来答
分享
大钢镚
2021-09-06
从TOP看到的内存比从mysql里面看到的多

从TOP看到的内存比从mysql里面看到的内存(sys.memory_global_total)要多得多,P_S一开始就配置了,且大页已经关闭。这个有什么排查思路吗

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
JiekeXu
暂无图片

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
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL 事物隔离级别问题
回答 3
在mysql的RR隔离模式下,事务2开启了一个事务,即会构造一个view,这个view类似于打了一个事务开启时候的数据库的快照,不轮后续表里的数据如何修改,事务2始终看到的是事务开启的时候的数据(快照
oracle 和mysql 语句结果不一致问题
回答 7
已采纳
leftjoin不会过滤左表数据。那肯定是where条件过滤了。你看两个库中超级管理员那行的parents列的值是相同的吗?
mysql怎么修改导入数据路径中的符号
回答 1
windows下默认就是\,你改成/还怎么识别啊没太懂你的问题?
从oracle把数据传输到mysql和sql server和uxdb 有没有传输工具?
回答 1
已采纳
ogg可以。但是blob不一定都行。
MySQL 漏洞处理版本升级到最新小版本,还有漏洞, 是不是必须打补丁?
回答 2
已采纳
不一定,这个东西还是要做具体分析的,漏洞肯定是都有的,但是危害程度有大有小,我们一般是遵照以下准则:a、  对于致命级别的安全漏洞补丁,应立即更新;b、对于bug修复类补丁,若涉及
MySQL 文件超过10g,有什么好用的对比工具吗?
回答 1
Mysqldbcompare或者WinMerge都试试?
请问怎么判断当前MySQL是否支持分区呢?
回答 2
已采纳
1、执行命令   showvariableslike'%partition%'2、查看输出结果   havepartintioning的值为
MySQL是不是整库备份之后就无法再单独使用?
回答 1
已采纳
可以使用
想在centos里安装mysql8 安装文件, 放到centos里哪个目录好?
回答 9
一个mysql安装目录搞这么费劲
MySQL 在存储过程中创建临时表来保存select的结果集是不是会给结果集的数据加读锁?
回答 1
insertintoselect这种写法么?RR级别下会加S锁的。https://www.modb.pro/db/232376我写了一篇锁的文章,有提到这种情况。你可以看看。