Linux在x86下默认的page size是4KB. 但是对很多应用(特别是很多数据库方面的应用)来说,这个page size值过小导致了很多TLB miss, 从而降低了系统的性能.所以这个时候我们希望使用hugepage来减少TLB miss. x86下典型的hugepage可以达到2MB.
查看当前系统hugepage的大小和使用情况
$ cat /proc/meminfo |grep Huge
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
查看当前hugepage的数目
$ cat /proc/sys/vm/nr_hugepages
0
#或者使用sysctl工具
$ sysctl vm.nr_hugepages
0
设置可以使用的hugepage的数目为512 (这样你可以使用总共为1G大小的hugepage memory)
$ echo 512 > /proc/sys/vm/nr_hugepages
#或者使用sysctl工具
$ sysctl -w vm.nr_hugepages= 512
这时候再看一下hugepage的使用情况
$ cat /proc/meminfo |grep Huge
HugePages_Total: 512
HugePages_Free: 512
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Ref:
http://linuxgazette.net/155/krishnakumar.html