linux記憶體檔案系統

2021-06-08 10:29:29 字數 1560 閱讀 5853

在linux中可以將一部分記憶體當作分割槽來使用,我們稱之為ramdisk。對於一些經常被訪問的檔案,而它們又不會被更改,可以將它們通過ramdisk放在記憶體中,即可明顯地提高系統的效能。當然你的記憶體可要足夠大了。ramdisk有兩種,一種可以格式化,載入,在linux核心2.0/2.2就已經支援,其不足之處是大小固定。另一種是核心2.4才支援的,通過ramfs或者tmpfs來實現,它們不能被格式化,但是用起來靈活,其大小隨所需要的空間而增加或減少。這裡主要介紹一下ramfs和tmpfs。

ramfs顧名思義是記憶體檔案系統,它工作於虛擬檔案系統(vfs)層。不能格式化,可以建立多個,在建立時可以指定其最大能使用的記憶體大小。如果你的linux已經將ramfs編譯進核心,你就可以很容易地使用ramfs了。建立乙個目錄,載入ramfs到該目錄即可。

# mkdir -p /ram1

# mount -t ramfs none /ram1

預設情況下,ramfs被限制最多可使用記憶體大小的一半。可以通過maxsize(以kbyte為單位)選項來改變。

quote:

# mkdir -p /ram1

# mount -t ramfs none /ram1 -o maxsize=10000

以上即建立了乙個限定了最大使用記憶體大小為10m的ramdisk。

tmpfs是乙個虛擬記憶體檔案系統,它不同於傳統的用塊裝置形式來實現的ramdisk,也不同於針對物理記憶體的ramfs。tmpfs可以使用物理記憶體,也可以使用交換分割槽。在linux核心中,虛擬記憶體資源由物理記憶體(ram)和交換分割槽組成,這些資源是由核心中的虛擬記憶體子系統來負責分配和管理。tmpfs就是和虛擬記憶體子系統來"打交道"的,它向虛擬記憶體子系統請求頁來儲存檔案,它同linux的其它請求頁的部分一樣,不知道分配給自己的頁是在記憶體中還是在交換分割槽中。tmpfs同ramfs一樣,其大小也不是固定的,而是隨著所需要的空間而動態的增減。使用tmpfs,首先你編譯核心時得選擇"虛擬記憶體檔案系統支援(virtual memory filesystem support)" ,然後就可以載入tmpfs檔案系統了。

# mkdir -p /mnt/tmpfs

# mount tmpfs /mnt/tmpfs -t tmpfs

為了防止tmpfs使用過多的記憶體資源而造成系統的效能下降或宕機,可以在載入時指定tmpfs檔案系統大小的最大限制。

# mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m

以上建立的tmpfs檔案系統就規定了其最大的大小為32m。不管是使用ramfs還是tmpfs,必須明白的是,一旦系統重啟,它們中的內容將會丟失。所以那些東西可以放在記憶體檔案系統中得根據系統的具體情況而定。

再補充一下:ramfs只會在物理記憶體中被建立,而tmpfs可能在物理記憶體中建立,也可能在交換分割槽中被建立。對於想利用記憶體的高速io來提高效能的應用,最好是使用ramfs。對於只是想存放臨時快取的應用,最好是用tmpfs,以提前記憶體的利用率。

freebsd:

mount_mfs

#mount mfs

/sbin/mount_mfs -s 131072 /dev/da0s1b /data1/apache2/htdocs/ram

linux記憶體檔案系統之指南

記憶體檔案系統使用及示例 ramdisk,ramfs,tmpfs 第一部分 在linux中可以將一部分記憶體mount為分割槽來使用,通常稱之為ramdisk。ramdisk有三種實現方式 第一種就是傳統意義上的,可以格式化,然後載入。這在linux核心2.0 2.2就已經支援,其不足之處是大小固定...

linux 檔案系統 Linux 檔案系統結構介紹

ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...

jimfs 記憶體檔案系統

當你的專案效能受制於磁碟的io瓶頸時,可以試試記憶體檔案系統jimfs google出品,肯定還行是吧。既然我們不用在生產系統中,但是有時候去一些機構過檢對效能是有要求的,可又臨時湊湊。當然把記憶體當磁碟用的工具也很多,這裡暫不考慮。使用起來,也超簡單 1,引入 com.google.jimfs j...