Linux 記憶體檔案系統

來源:互聯網
上載者:User

 記憶體檔案系統(linux,FreeBSD)

在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。對於一些經常被訪問的檔案,而它們又不會被更改,可以將它們通過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
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.