减少巨页有一定的风险,先使用numastat -m 看看每个numa节点上剩余的巨页内存是否足够,
如果我想减少20G的巨页内存,对于两个node的服务器,HugePages_Free 每个numa node上的剩余巨页内存至少大于10G才行。
同理,对于4个node的环境,每个numa node上的剩余巨页内存至少大于5G (假设巨页大小为1G)
[root@host ~]# numastat -m
Per-node system memory usage (in MBs):
Node 0 Node 1 Total
--------------- --------------- ---------------
MemTotal 32744.73 49119.00 81863.73
MemFree 1350.00 19950.89 21300.89
MemUsed 31394.73 29168.11 60562.84
Active 1010.45 403.50 1413.95
Inactive 435.32 2.53 437.86
Active(anon) 697.88 396.54 1094.42
Inactive(anon) 271.14 0.03 271.17
Active(file) 312.57 6.96 319.53
Inactive(file) 164.18 2.50 166.68
Unevictable 147.16 0.00 147.16
Mlocked 147.16 0.00 147.16
Dirty 0.07 0.00 0.07
Writeback 0.00 0.00 0.00
FilePages 989.82 9.53 999.35
Mapped 126.22 9.17 135.39
AnonPages 602.89 396.75 999.64
Shmem 505.20 0.04 505.23
KernelStack 6.36 1.44 7.80
PageTables 10.99 0.65 11.64
NFS_Unstable 0.00 0.00 0.00
Bounce 0.00 0.00 0.00
WritebackTmp 0.00 0.00 0.00
Slab 103.93 15.69 119.62
SReclaimable 71.18 3.09 74.27
SUnreclaim 32.75 12.60 45.35
AnonHugePages 314.00 370.00 684.00
HugePages_Total 28672.00 27648.00 56320.00
HugePages_Free 24576.00 19456.00 44032.00
HugePages_Surp 0.00 0.00 0.00
(1) 修改/etc/grubtool.cfg 假设hugepage_num参数原来为300,修改为280,减少20G
(2) cat /proc/sys/vm/nr_hugepages_mempolicy //查看巨页的数量
vi /etc/sysctl.conf ,最后一行添加:vm.nr_hugepages=280 //修改巨页的数量,其中280是目前总共需要的巨页的数量
sysctl -p //保存并刷新配置信息
cat /proc/sys/vm/nr_hugepages_mempolicy //查看巨页的数量,此时应该是280
如果我想减少20G的巨页内存,对于两个node的服务器,HugePages_Free 每个numa node上的剩余巨页内存至少大于10G才行。
同理,对于4个node的环境,每个numa node上的剩余巨页内存至少大于5G (假设巨页大小为1G)
[root@host ~]# numastat -m
Per-node system memory usage (in MBs):
Node 0 Node 1 Total
--------------- --------------- ---------------
MemTotal 32744.73 49119.00 81863.73
MemFree 1350.00 19950.89 21300.89
MemUsed 31394.73 29168.11 60562.84
Active 1010.45 403.50 1413.95
Inactive 435.32 2.53 437.86
Active(anon) 697.88 396.54 1094.42
Inactive(anon) 271.14 0.03 271.17
Active(file) 312.57 6.96 319.53
Inactive(file) 164.18 2.50 166.68
Unevictable 147.16 0.00 147.16
Mlocked 147.16 0.00 147.16
Dirty 0.07 0.00 0.07
Writeback 0.00 0.00 0.00
FilePages 989.82 9.53 999.35
Mapped 126.22 9.17 135.39
AnonPages 602.89 396.75 999.64
Shmem 505.20 0.04 505.23
KernelStack 6.36 1.44 7.80
PageTables 10.99 0.65 11.64
NFS_Unstable 0.00 0.00 0.00
Bounce 0.00 0.00 0.00
WritebackTmp 0.00 0.00 0.00
Slab 103.93 15.69 119.62
SReclaimable 71.18 3.09 74.27
SUnreclaim 32.75 12.60 45.35
AnonHugePages 314.00 370.00 684.00
HugePages_Total 28672.00 27648.00 56320.00
HugePages_Free 24576.00 19456.00 44032.00
HugePages_Surp 0.00 0.00 0.00
(1) 修改/etc/grubtool.cfg 假设hugepage_num参数原来为300,修改为280,减少20G
(2) cat /proc/sys/vm/nr_hugepages_mempolicy //查看巨页的数量
vi /etc/sysctl.conf ,最后一行添加:vm.nr_hugepages=280 //修改巨页的数量,其中280是目前总共需要的巨页的数量
sysctl -p //保存并刷新配置信息
cat /proc/sys/vm/nr_hugepages_mempolicy //查看巨页的数量,此时应该是280