跳转至

大页


更新于 2021-04-06

此处只介绍大页内存配置

Ubuntu下配置

大页类型

通过检测CPU标志,确定可以支持的大页类型。
例如:intel架构下cpu

pse--支持2M
pdpe1gb--支持1gb

大页配置

系统启动前,修改linux命令行,可以隔离隔离内存。 例如分配大页为1G得,一共分配4G,命令如下:

Bash
1
2
3
4
#hugepagesz:大页大小
#hugepages:大页个数
#default_hugepagesz:默认大页大小
default_hugepagesz=1G hugepagesz=1G hugepages=4
系统启动后,可以往/sys/devices/下得nr_hugepages文件写大页数量。 例如分配大页类型为2M得,一共1024页,命令如下:

Bash
1
2
3
4
5
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

#如果有多个numa节点,则可以精细配置。
echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
echo 1024 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages 

系统启动后,无法通过修改nr_hugepages分配1G大页。

挂载

现在Linux系统默认把大页挂载在/dev/hugepages
如果要修改目录则需要手动挂载

Bash
1
2
mkdir /mnt/huge
mount -t hugetlbfs pagesize=1GB /mnt/huge
永久挂载大页
Bash
1
2
#在/etc/fstab文件中添加:
nodev /mnt/huge_1GB hugetlbfs pagesize=1GB 0 0

删除大页

Bash
1
rm /dev/hugepages/*

Redhat

Bash
1
2
3
4
5
6
#配置参数与步骤同上

#uefi启动,更新grub
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
#bios启动,更新grub
grub2-mkconfig -o /boot/grub2/grub.cfg
参见:文档

大页管理

Bash
1
2
hugeadm -h
#各个发行版,可能安装包不一样