歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux 下 Hugepages的配置

Linux 下 Hugepages的配置

日期:2017/2/28 16:01:20   编辑:Linux教程

Linux雖然沒有aix,hp unix那麼強悍,但Linux也是非常優秀的,為了提升Linux的性能,它采用了很多io,memory的調度機制,Linux使用內存的方式是采用vm的方式,即Linux把物理內存和swap共同虛擬成內存來對外提供,有時用戶看似使用內存,可實際上是使用磁盤,那如何避免使用swap磁盤空間呢?

Linux管理內存的單位是頁(pages),一般情況下是4k的page,當我們使用的大內存時(>8G),管理這麼大的內存就會給系統造成很大的負擔,再加上頻繁的pagein/pageout,會成為系統的瓶頸。

1.hugepage介紹
2.實踐配置


1.hugepage介紹
hugepage是在Linux2.6內核被引入的,主要提供4k的page和比較大的page的選擇當我們訪問內存時,首先訪問”page table“,然後Linux在通過“page table”的mapping來訪問真實物理內存(ram+swap)。為了提升性能,Linux在cpu中申請固定大小的buffer,被稱為TLB,TLB中保存有“page table”的部分內容,這也遵循了,讓數據盡可能的靠近cpu原則。在TLB中通過hugetlb來指向hugepage。這些被分配的hugepage作為內存文件系統hugetlbfs(類似tmpfs)提供給進程使用。

普通4k page

啟用hugepage

hugepage特點
Linux系統啟動,hugepage就被分配並保留,不會pagein/pageout,除非人為干預,如改變hugepage的配置等;
根據Linux內核的版本和HW的架構,hugepage的大小從2M到256M不等。因為采用大page,所以也減少TLB
和page table的管理壓力

為什麼使用hugepage

對於大內存(>8G),hugepage對於提高在Linux上的Oracle性能是非常有幫助的
1)Larger Page Size and Less of Pages:減少了HugeTLB 的工作量
2)No Page Table Lookups:因為hugepage是不swappable的,所有就沒有page table lookups。
3)No Swapping: 在Linux下,hugepage是不支持swapping
4)No 'kswapd' Operations:在Linux下進程“kswapd”是管理swap的,如果是大內存,那pages的數量就非常大,
那“kswapd”就會被頻繁的調用,從而會影響性能。

Copyright © Linux教程網 All Rights Reserved