Category Archives: Linux

Linux Hugepages

Hugepages是从Linux kernal 2.6后被引入的,其目的是使用更大的memory page size以适应越来越大的系统内存。 在我上大学那会,买一条64M 133Mhz的内存(对,你没看错,64M)价格为500多人民币,而现在4G 1600Mhz的内存的价格也就500多。 计算机硬件的发展速度太快了,所以操作系统的一些配置也要相应的随之改变。 在Linux下,默认的page size大小为4k。显然对于现在的SGA比较大的数据库系统来说,4k的page size有点太小了。 我们来看看两者之间有什么区别 1. Page Table大小 Page Table是用来存放虚拟内存也和物理内存页对应关系的内存结构。因为page size较小,所以相应的改内存结构也会比较大。 而Hugepages的常见page size为2M,是4k size的500倍,所以可以大大减小page table的size。 我们来看两个例子: 这是一个没有配置Hugepage的系统,系统内存128G,pagetable大小大约为4G。 cat /proc/meminfo MemTotal: 132086880 kB PageTables: 4059612 kB 这是配置了Hugepage的系统,系统内存96G, PageTable大小仅为78M MemTotal: 98999880 kB PageTables: 79916 … Continue reading

Posted in Linux | Tagged , | 87 Comments