6、当前操作系统发行版信息
[root@MysqlCluster01 ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
7、内存使用情况
[root@MysqlCluster01 ~]# free -m
totalusedfreesharedbufferscached
Mem:7863273851250141835
-/+ buffers/cache:17616102
Swap:396703967
如何查看mysql内存占用原因查看 /proc/meminfo
Tips:
“大内存页”也称传统大页、大页内存等有助于 Linux 进行虚拟内存的管理,标准的内存页为 4KB,这里使用“大内存页”最大可以定义 1GB 的页面大小,在系统启动期间可以使用“大内存页”为应用程序预留一部分内存,这部分内存被占用且永远不会被交换出内存,它会一直保留在那里,直到改变配置 。(详细介绍请看下面链接官方解释)
那么这么大页内存是分配给谁的呢?
查询一下:
shell /proc/sys/vm/hugetlb_shm_group
27
shell id 27
uid=27(mysql) gid=27(mysql) groups=27(mysql)
hugetlb_shm_group 文件里填的是指定大页内存使用的用户组 id,这里查看到是 MySQL 组 id,那既然是给 MySQL 的为什么 free 等于 total , 并且 mysql 还只有 20 多 G 实际使用内存呢?
原来在 MySQL 中还有专门启用大内存页的参数,在 MySQL 大内存页称为 large page 。
查看 MySQL 配置文件
发现配置文件中确实有 large-page 配置,但出于禁用状态 。
后与业务确认,很早之前确实启用过 mysql 的 large page,不过后面禁用了 。排查到这基本就有了结论 。
结论
这套环境之前开启了 20000 的大内存页 , 每页大小为 2MB , 占用了 40G 内存空间,给 MySQL 使用,并且 MySQL 开启了 large page,但后来不使用的时候,只关闭了 MySQL 端的 large page 参数,但没有实际更改主机的关于大内存页的配置,所以导致,实际上主机上的还存在 20000 的大内存页 , 并且没在使用,这一部分长期空闲,并且其他程序不能使用 。
所以 MySQL 在使用 20G 内存左右 , 整个主机内存就饱和了,然后在部分条件下 , 就触发了 OOM , 导致 mysqld 被 kill,但主机上又有 mysqld_safe 守护程序,所以又再次给拉起来 , 就看到了文章初的偶尔连接不上的现象 。
【mysql怎么看内存分部 mysql查看内存】关于mysql怎么看内存分部和mysql查看内存的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 手机单机游戏枪械射击下载,手机单机游戏枪战游戏
- 第一个使用鸿蒙的国产手机,华为第一个鸿蒙系统手机
- word图框如何设为模板,word图框如何设为模板样式
- 课程直播软件,课程直播软件下载
- java+ping代码 java代码示例
- 怎么关注河北农信公众号,关注河北农信公众号怎么查余额呢
- ios如何删掉铃声,ios铃声怎么删除
- 苹果13直播怎么选手机,苹果13pro直播怎么样
- 决定c语言中函数类型的是 决定c语言中函数类型的是什么