2. Hugepage基本信息查看
Linux中,可以通过如下命令来查看HugePage相关的值:
$ cat /proc/meminfo | grep Huge
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 KB
通常情况下,Linux hugepage大小为2MB (不同的处理器架构,可能不一样)
HugePages_Total: Hugepage的页面数量
HugePages_Free: 剩余的页面数量
HugePages_Rsvd: 被分配预留但是还没有使用的page数目
Hugepagesize: 每单位数量大小
注意: 使用Hugepage内存是共享内存,它会一直pin在内存中,不会被交换出去,也就是说使用
hugepage的内存不能被其他的进程使用,所以一定要合理设置这个值,避免造成浪费。对于只使用
Oracle的服务器来说,把Hugepage_pool设置成稍大于SGA大小即可。PGA因不是共享内存,是使用
不到Hugepage的。
HugePages_Free - HugePages_Rsvd部分的内存是浪费的,且不能被其他程序使用。在实际应用中,
尽可能让HugePages_Free - HugePages_Rsvd=0
设置了多少的huge page,free内存就会被使用多少。比如:设置sysctl vm.nr_hugepages=1024
之后, free命令可以看到free的内存会减少2048MB (1024*2M)。(这也和Hugepagesize的大小有关)
3. Hugepage的好处:
a. 大大提高了CPU cache中存放的page table所覆盖的内存大小,从而提高了TLB命中率。
b. CPU cache中有一部分TLB(Translation Lookaside Buffer)用来存放部分page table以提高虚拟内存
地址到物理内存地址转换的速度。因为page size变大了,所以同样大小的TLB,所覆盖的内存大小也变大了。
提高了TBL命中率,也就是提高了地址转换的速度。
c. 减少CPU的sys的使用。由于提高了CPU的TLB的命中率,也就降低了CPU的sys部分的使用。
d. 大页会将SGA LOCK在RAM里, 当内存短缺的时候也不会被page out
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-1171323/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-1171323/