linux查看内存个数 linux查看内存详细信息
0
2026-05-22
在Linux中,默认页面大小为4KB,HugePages需要确认内核支持(例如grep CONFIG_HUGETLB_PAGE /boot/config-$(uname -r)),检查/proc/meminfo中Hugepagesize的值,并检查HugePages_Total和Free数量;您还需要关闭透明页面,配置memlock限制,加载hugetlbfs,最后通过processmaps验证MMUPageSize是否有效。

在Linux中,默认页面大小为4KB,但HugePages页面大小需要单独确认;不能只读取/proc/meminfo的Hugepagesize就认为配置已经生效——它只反映了内核支持的大小,并不代表进程已经分配或使用的大小。检查当前系统支持的大页大小。 grep -i Hugepagesize → 输出类似 Hugepagesize: 2048 kB,说明当前启用的默认大页为 2MB,是否支持 1GB 页,需要检查内核配置: grep CONFIG_HUGETLB_PAGE_SIZE_1GB /boot/config-$(uname -r),返回 y 或m才表明支持编译 注:Hugepagesize 字段仅显示“当前默认值”,不等于“分配页”的大小;即使你通过设置hugepagesz=1G设置了1GB页面,只要default_hugepagesz=1G,/proc/meminfo仍然可以显示2MB。检查HugePages是否已分配并使用。
3 grep -i "hugepages_",关注HugePages_Total(已全留页数)、HugePages_Free(配套最作被页的页数)看下载真被页数:grep -i算作/proc/
下载当前状态:cat /sys/kernel/mm/transparent_hugepage/enabled,若输出包含[always]或[madvise],THP的描述 英语时间 时间:echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled 永久关闭:在/etc/default/grub的GRUB_CMDLINE_LINUX里加transparent_hugepage=never,再update-grub && restart 验证:重启后再次cat /sys/kernel/mm/transparent_hugepage/enabled,应电影never解memlock限制进程是否使用HugePages
即使页面已经存在分布式,THP已经可用,挂点存在,Oracle,PostgreSQL等,进程还是可以的;ulimit -l不足,回退到普通页面:检查当前用户限制:ulimit -l(单位KB),限制值非64或无限制,概率不够 Oracle要求memlock至少覆盖SGA大小,例如SGA=32GB,ulimit -lrequirement≥33554432(即, 32x1024x1024) 更改:在/etc/security/limits.conf中添加两行:oracle soft memlock unlimited和oracle hard memlock unlimited,更改要求重新登录或重新启动服务验证的结尾:使用目标用户执行ulimit -l,确认输出是无限制或足够大的数字
不分配几个大页面确实很难,但让进程当时启动来锁定它们一起——nr_hugepages写对了,memlock没放开,THP还在后台偷偷合并,smaps里就永远看不到MMUPageSize那一行了。