MySQL對large page的支持 |
發(fā)布時間: 2012/8/13 16:24:57 |
在 Linux 操作系統(tǒng)上運行內存需求量較大的應用程序時,由于其采用的默認頁面大小為 4KB,因而將會產(chǎn)生較多 TLB Miss 和缺頁中斷,從而大大影響應用程序的性能。當操作系統(tǒng)以 2MB 甚至更大作為分頁的單位時,將會大大減少 TLB Miss 和缺頁中斷的數(shù)量,顯著提高應用程序的性能。這也正是 Linux 內核引入大頁面支持的直接原因。 好處是很明顯的,假設應用程序需要 2MB 的內存,如果操作系統(tǒng)以 4KB 作為分頁的單位,則需要 512 個頁面,進而在 TLB 中需要 512 個表項,同時也需要 512 個頁表項,操作系統(tǒng)需要經(jīng)歷至少 512 次 TLB Miss 和 512 次缺頁中斷才能將 2MB 應用程序空間全部映射到物理內存;然而,當操作系統(tǒng)采用 2MB 作為分頁的基本單位時,只需要一次 TLB Miss 和一次缺頁中斷,就可以為 2MB 的應用程序空間建立虛實映射,并在運行過程中無需再經(jīng)歷 TLB Miss 和缺頁中斷(假設未發(fā)生 TLB 項替換和 Swap)。 為了能以最小的代價實現(xiàn)大頁面支持,Linux 操作系統(tǒng)采用了基于 hugetlbfs 特殊文件系統(tǒng) 2M 字節(jié)大頁面支持。這種采用特殊文件系統(tǒng)形式支持大頁面的方式。 本文出自:億恩科技【mszdt.com】 |