tmpfs,臨時文件系統(tǒng),是一種基于內(nèi)存的文件系統(tǒng),它和虛擬磁盤ramdisk比較類似像,但不完全相同,和ramdisk一樣,tmpfs可以使用RAM,但它也可以使用swap分區(qū)來存儲,而且傳統(tǒng)的ramdisk是個塊設(shè)備,要用mkfs來格式化它,才能真正地使用它;而tmpfs是一個文件系統(tǒng),并不是塊設(shè)備,只是安裝它,就可以使用了。tmpfs是最好的基于RAM的文件系統(tǒng)。
虛擬內(nèi)存
Linux內(nèi)核的虛擬內(nèi)存資源同時來源于您的RAM和交換分區(qū)。內(nèi)核中的VM子系統(tǒng)將這些資源分配到系統(tǒng)中的其它部分,并負(fù)責(zé)在后臺管理這些資源,通常是透明地將RAM頁移動到交換分區(qū)或從交換分區(qū)到RAM頁。
tmpfs文件系統(tǒng)需要VM子系統(tǒng)的頁面來存儲文件。tmpfs自己并不知道這些頁面是在交換分區(qū)還是在RAM中;做這種決定是VM子系統(tǒng)的工作。tmpfs文件系統(tǒng)所知道的就是它正在使用某種形式的虛擬內(nèi)存。
不同于大多數(shù)“標(biāo)準(zhǔn)的”文件系統(tǒng),如ext3、reiserfs和其它一些系統(tǒng),tmpfs并不是存在于一個底層塊設(shè)備上面。因為tmpfs是直接建立在VM之上的,您用一個簡單的mount命令就可以創(chuàng)建tmpfs文件系統(tǒng)了。
優(yōu)勢
動態(tài)文件系統(tǒng)大小
/mnt/tmpfs最初會只有很小的空間,但隨著文件的復(fù)制和創(chuàng)建,tmpfs文件系統(tǒng)驅(qū)動程序會分配更多的 VM,并按照需求動態(tài)地增加文件系統(tǒng)的空間。而且,當(dāng) /mnt/tmpfs 中的文件被刪除時,tmpfs 文件系統(tǒng)驅(qū)動程序會動態(tài)地減小文件系統(tǒng)并釋放 VM 資源,這樣做可以將 VM 返回到循環(huán)當(dāng)中以供系統(tǒng)中其它部分按需要使用。因為 VM 是寶貴的資源,所以您一定不希望任何東西浪費超出它實際所需的 VM,tmpfs 的好處之一就在于這些都是自動處理的。
速度快
tmpfs 的另一個主要的好處是它閃電般的速度。因為典型的 tmpfs 文件系統(tǒng)會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的。即使用了一些交換分區(qū),性能仍然是卓越的,當(dāng)更多空閑的 VM 資源可以使用時,這部分 tmpfs 文件系統(tǒng)會被移動到 RAM 中去。讓 VM 子系統(tǒng)自動地移動部分 tmpfs 文件系統(tǒng)到交換分區(qū)實際上對性能上是好的,因為這樣做可以讓 VM 子系統(tǒng)為需要 RAM 的進(jìn)程釋放空間。這一點連同它動態(tài)調(diào)整大小的能力,比選擇使用傳統(tǒng)的 RAM 磁盤可以讓操作系統(tǒng)有好得多的整體性能和靈活性。
使用
默認(rèn)情況下,tmpfs會mount到/dev/shm目錄。使用tmpfs,就是說你可以使用這個目錄,這個目錄就是tmpfs,如你寫臨時文件到此目錄,這些文件實際上是在VM中。
要使用tmpfs,您要在內(nèi)核配置時,啟用“Virtual memory file system support”。
為防止tmpfs使用了全部VM,有時候要限制其大小。要創(chuàng)建一個最大為32 MB的tmpfs文件系統(tǒng),鍵入:
添加到 /etc/fstab,應(yīng)該是這樣:
參考資料 >