tmpfs:一種基於內存的文件系統


tmpfs是一種基於內存的文件系統,

 

tmpfs有時候使用rm(物理內存),有時候使用swap(磁盤一塊區域)。根據實際情況進行分配。

 

rm:物理內存。real memery的簡稱? 真實內存就是電腦主板上那塊內存條,叫做真實內存不為過。

swap:交換分區。是硬盤上一塊區域

 

 

tmpfs最大可使用的大小為什么是rm+swap。

 

SWAP就是LINUX下的虛擬內存分區,它的作用是在物理內存使用完之后,將磁盤空間(也就是SWAP分區)虛擬成內存來使用.  它和Windows系統的交換文件作用類似,但是它是一段連續的磁盤空間,並且對用戶不可見。

 

 

疑惑:window操作系統經常叫的虛擬內存和linux操作系統中的交換分區(swap)有什么區別?

 

一聽說,虛擬內存,我常常就知道含義了。因為在學校使用window,我們可以自己設置虛擬內存的大小。可以隨時調。實際上虛擬內存就是window系統下的一個這樣的文件,如下:

 

 

 

每次看到交換分區,就一時不知道什么東西了。

 

現在整理一下

 

實際上,在window系統上叫做虛擬內存。而在linux操作系統的概念中叫做交換分區。實際上本質都是一樣,都是虛擬內存。

 

后來看資料說,兩個操作系統對於什么時候使用虛擬內存,是不同的。明顯,linux的性能更好。

window平時也會使用虛擬內存。而linux只有在內存不足的時候才會用到虛擬內存?

 

原理基本都是一樣的 區別就是windows即使物理內存沒有用完也會去用到虛擬內存而Linux不一樣。

​Linux只有當物理內存用完的時候才會去動用虛擬內存(即swap分區)這就是兩者的區別。。。

windows的虛擬內存是電腦自動設置的

Linux的swap分區是我們裝系統的時候分好的區,大小是固定了的(難怪叫做交換區,把它當成一個分區的概念了)

 

看設計思想的不同:

 

Linux 只不過是把交換文件設計為可以用分區而已,Linux 也可以用文件的。他們的區別就是實現方式不同而已。
Windows 的虛擬內存文件好處是可以動態變動大小,這個歸系統自己管理的。

Windows 的虛擬內存設置默認好像是 50%-100% 內存在 C 盤上動態分配。Linux 沒有這個自動的設計,但分區時安裝程序會根據習慣自動分區出一個適合大小的 SWAP 分區。

Windows 的虛擬內存交換文件壞處是混在系統分區里面使用,文件碎片問題和容量變動問題都會影響交換文件的效率,Linux 因為是獨立的分區,所以沒有文件碎片和容量變動的問題。

Windows 其實也可以借用 Linux 的 SWAP 理念,單獨分一個分區,只用來放 Windows 的虛擬內存交換文件。

 

 

 

總結:虛擬內存和交換分區,本質都是同一個東西,都是解決內存不夠用時候,把硬盤當內存來使用。怎么個使用機制,window和linux稍微有不同。

 

 

 

 

tmpfs 的另一個主要的好處是它閃電般的速度。因為典型的 tmpfs 文件系統會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的。即使用了一些交換分區,性能仍然是卓越的,當更多空閑的 VM 資源可以使用時,這部分 tmpfs 文件系統會被移動到 RAM 中去。讓 VM 子系統自動地移動部分 tmpfs 文件系統到交換分區實際上對性能上是好的,因為這樣做可以讓 VM 子系統為需要 RAM 的進程釋放空間。這一點連同它動態調整大小的能力,比選擇使用傳統的 RAM 磁盤可以讓操作系統有好得多的整體性能和靈活性。

 

 

 

我可以這么理解:tmpfs是一種文件系統,這種文件系統的特殊性在於,其有時候使用ram,有時候使用vm(虛擬內存,磁盤上的交換分區)

 

 

mount -t 文件類型 -o option  哪個設備  掛節點

 

mount  -t tmpfs -o size=20m  tmpfs  /mnt/tmp

 

mount tmpfs /dev/shm -t tmpfs -o size=32m 

 

 

 

設備:就是將哪個設備掛接到linux某個目錄去。這里是將tmpfs設備掛接到 /mnt/tmp中去。

這樣操作/mnt/tmp目錄實際上就是操作tmpfs設備了。

 

tmpfs為什么變成一個設備了呢?

 

vm子系統做管理工作。虛擬內存。

 

參考光盤文件的掛接加深理解:

光盤鏡像文件的掛接(mount)
 #mkdir /mnt/vcdrom
 注:建立一個目錄用來作掛接點(mount point)

#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
 注:使用/mnt/vcdrom就可以訪問盤鏡像文件mydisk.iso里的所有文件了。

 

可以這里理解掛節點:linux上的一個目錄,就是掛節點,要把一個設備掛接到掛節點上。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM