暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于大页分配不当导致系统无法启动问题

原创 晨辉 2022-01-06
1604

昨天开发同事反馈说将主机内存由之前的64G调低到32G后系统起不来了,再调回64G才起来,怀疑是大页设置问题,后面检查大页设置了20991,大页大小为2MB(Hugepagesize:2048 kB)也就是大页如果都分配需要消耗42G内存,但如此真的会导致内存不够分配大页而系统都起不来么
在本机上做了个实验:

未设置大页时总内存为3830,可用内存还有 3664
[root@ora11g1 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3830       3664        166          0         32       2702
-/+ buffers/cache:        930       2900
Swap:         4095          1       4094
查看大页大小为 2048 kB (2MB)
[root@ora11g1 ~]# cat /proc/meminfo |grep Hugepagesize
Hugepagesize:       2048 kB
将大页数量设置为3000 ,大于总内存能提供的数量
[root@ora11g1 ~]# echo "vm.nr_hugepages = 3000" >> /etc/sysctl.conf
[root@ora11g1 ~]# cat /etc/sysctl.conf |grep vm                    
vm.nr_hugepages = 3000
重启系统发现系统确实等了好久还没起来,差不多等了一两分钟才起来
系统起来后又等了一分钟才用SSH连上,再次查看内存:
[root@ora11g1 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3830       3743         87          0          4         12
-/+ buffers/cache:       3726        104
Swap:         4095        210       3885
[root@ora11g1 ~]# cat /proc/meminfo |grep Huge
AnonHugePages:         0 kB
HugePages_Total:    1816
HugePages_Free:     1816
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
可以看到内存已经消耗了97.7%(3743/3830),大页分配了 1816个,即大页消耗了 3632MB内存。

从这里说明 大页的分配不是设置了多少就一定要分配这么多,如果不够分配那就是能最大的分配多少就分配多少了,但是因为大页设置过大,消耗了大量的内存,是会导致系统启动时间超长的问题,从表面看可能就是系统起不来了。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论