测试linux上的hugepages (hugetlbfs)

hugepage采用了大页面(2MB或4MB一个page),理论上页表的索引更小,访问就更快。介绍的资料如下:
http://www.kernel.org/doc/ols/2006/ols2006v2-pages-83-90.pdf 里面还介绍了怎样使用hugepages,但我按它的方法却不好使,最后是把hugetlbfs mount到某个目录,然后在里面创建一个文件,mmap之,注意,hugetblfs里的文件只能通过mmap操作
使用方法可参考:
http://www.cyberciti.biz/tips/linux-hugetlbfs-and-mysql-performance.html

我简单测了一下,分配2G的空间,顺序写一遍,hugepage(2MB一个页面)比malloc快3%
如果把2G空间分成2048份,每份写5遍,(这时模拟实际使用,访问的空间局部性),hugepage比malloc快6%,这和上面那篇论文提到的性能提升是一致的。
感觉在随机读写的时候hugepage表现更好,我猜测是因为CPU的 L1 cache 把页索引缓存,所以非常快。

这篇测试文章可以看出,hugepages不仅速度更快,而且更省内存(页表项少了很多!),所以他的结论是:如果在linux上跑数据库,最好用hugepages。

相关文章

分类

留言:

关于文章

This page contains a single entry by DongHao published on 11 12, 2009 2:24 PM.

google怎样使用linux(内核) was the previous entry in this blog.

高效内存拷贝? is the next entry in this blog.

Find recent content on the main index or look in the 存档 to find all content.