tmpfs文件系統

  tmpfs是一種基於內存的文件系統,它和虛擬磁盤ramdisk比較類似像,但不完全相同,和ramdisk一樣,tmpfs可以使用RAM,但它也可以使用swap分區來存儲。而且傳統的ramdisk是個塊設備,要用mkfs來格式化它,才能真正地使用它;而tmpfs是一個文件系統,並不是塊設備,只是安裝它,就可以使用了。tmpfs是最好的基於RAM的文件系統。
         Linux內核的虛擬內存(virtual memory ,VM)資源同時來源於您的RAM(物理內存)和交換分區(swap)。內核中的VM子系統負責在後臺管理這些資源,通常是透明地將RAM頁移動到交換分區或從交換分區到RAM頁。
  tmpfs文件系統需要VM子系統的頁面來存儲文件。tmpfs自己並不知道這些頁面是在交換分區還是在RAM中;做這種決定是內核中的VM子系統的工作。tmpfs文件系統所知道的就是它正在使用某種形式的虛擬內存。
  不同於大多數“標準的”文件系統,如ext3、ReiserFS和其它一些系統,tmpfs並不是存在於一個底層塊設備上面。因爲tmpfs是直接建立在VM之上的,您用一個簡單的mount命令就可以創建tmpfs文件系統了。
       # mount -t tmpfs -o size=64M tmpfs /dev/shm
  /mnt/tmpfs最初會只有很小的空間,但隨着文件的複製和創建,tmpfs文件系統驅動程序會分配更多的 VM,並按照需求動態地增加文件系統的空間。而且,當 /mnt/tmpfs 中的文件被刪除時,tmpfs 文件系統驅動程序會動態地減小文件系統並釋放 VM 資源,這樣做可以將 VM 返回到循環當中以供系統中其它部分按需要使用。因爲 VM 是寶貴的資源,所以您一定不希望任何東西浪費超出它實際所需的 VM,tmpfs 的好處之一就在於這些都是自動處理的。
     假如tmpfs的掛載點目錄下什麼也沒有,tmpfs並不佔用VM。上面的參數64M只是告訴內核這個掛載點最大可用的VM爲20M,如果不加上這個參數,tmpfs默認的大小是RAM的一半,假如你的物理內存是128M,那麼tmpfs默認的大小就是64M。
  tmpfs 的另一個主要的好處是它閃電般的速度因爲典型的 tmpfs 文件系統會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的。即使用了一些交換分區,性能仍然是卓越的,當更多空閒的 VM 資源可以使用時,這部分 tmpfs 文件系統會被移動到 RAM 中去。讓 VM 子系統自動地移動部分 tmpfs 文件系統到交換分區實際上對性能上是好的,因爲這樣做可以讓 VM 子系統爲需要 RAM 的進程釋放空間。這一點連同它動態調整大小的能力,比選擇使用傳統的 RAM 磁盤可以讓操作系統有好得多的整體性能和靈活性。
   
       默認情況下,tmpfs會mount到/dev/shm目錄。使用tmpfs,就是說你可以使用這個目錄,這個目錄就是tmpfs,如你寫臨時文件到此目錄,這些文件實際上是在VM中。 由於它的數據是在VM裏面,因此斷電或者你卸載它之後,數據就會立即丟失,這也許就是它叫tmpfs的原故。
  要使用tmpfs,您要在內核配置時,啓用“Virtual memory file system support”。
  爲防止tmpfs使用了全部VM,有時候要限制其大小。要創建一個最大爲32 MB的tmpfs文件系統,鍵入:
  # mount    -t tmpfs -o size=32m  tmpfs /dev/shm
  添加到 /etc/fstab,應該是這樣:
  tmpfs /dev/shm tmpfs size=32m 0 0
發佈了35 篇原創文章 · 獲贊 9 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章