Memory

巨大的頁面和性能改進

  • May 9, 2019

使用大頁面如何提高性能?

我讀過大頁面通過減少 TLB 查找和減小頁表的大小來提高性能。有人能告訴我這對性能有什麼幫助嗎?

這就像如果我有一個使用 4 頁虛擬記憶體 (4*4kb=16kb) 的應用程序,那麼每個頁面都直接映射到某個物理記憶體位置,但是如果我們使用 16kb 大小的大頁面而不是映射 4 頁它只需要映射一個,從而減少頁表大小,並且將其交換到磁碟的機會更少,因此 TLB 記憶體更長?

塞爾吉回答。TLB 有固定數量的時隙。如果虛擬地址可以通過 TLB 中的資訊映射到物理地址,則可以避免代價高昂的頁表遍歷。但是 TLB 不能記憶體所有頁面的映射。

因此,如果您使用更大的頁面,那麼固定數量的虛擬到物理映射會覆蓋更大的整體地址範圍,從而提高 TLB(這是一個記憶體映射)的命中率。

提高性能的另一個原因是可以訪問連續的記憶體塊。假設您有一個將 DMA 數據寫入記憶體的 PCIe 設備。通過使用大頁面,它可以將 2MB(或高達 1GB)的數據 DMA 到連續的 DRAM 空間,而通過使用預設的 4KB 頁面,您可能需要跳轉到 DRAM 中的許多不同的物理頁面,這會導致速度變慢。

引用自:https://unix.stackexchange.com/questions/66134