首先,這兩個概念分別對應windows和linux,即:
windows:虛擬內存
linux:swap分區
windows即使物理內存沒有用完也會去用到虛擬內存,而Linux不一樣 Linux只有當物理內存用完的時候才會去動用虛擬內存(即swap分區)
swap類似於windows的虛擬內存,不同之處在於,Windows可以設置在windows的任何盤符下面,默認是在C盤,可以和系統文件放在一個分區里。而linux則是獨立占用一個分區,方便由於內存需求不夠的情況下,把一部分內容放在swap分區里,待內存有空余的情況下再繼續執行,也稱之為交換分區,交換空間是其中的部分
windows的虛擬內存是電腦自動設置的
Linux的swap分區是你裝系統的時候分好的
共享內存是被多個進程共享的一部分物理內存 參考:http://blog.csdn.net/wc7620awjh/article/details/7721331
tmpfs:
linux下面VM的大小由RM(Real Memory)和swap組成,RM的大小就是物理內存的大小,而Swap的大小是由你自己決定的。Swap是通過硬盤虛擬出來的內存空間,因此它的讀寫速度相對RM(Real Memory)要慢許多,我們為什么需要Swap呢?當一個進程申請一定數量的內存時,如內核的vm子系統發現沒有足夠的RM時,就會把RM里面的一些不常用的數據交換到Swap里面,如果需要重新使用這些數據再把它們從Swap交換到RM里面。 如果你有足夠大的物理內存,根本不需要划分Swap分區。通過上面的說明,你該知道tmpfs使用的存儲空間VM是什么了吧? 前面說過VM由RM+Swap兩部分組成,因此tmpfs最大的存儲空間可達(The size of RM + The size ofSwap)。 但是對於tmpfs本身而言,它並不知道自己使用的空間是RM還是Swap,這一切都是由內核的vm子系統管理的。
df命令:
檢查linux服務器的文件系統的磁盤空間占用情況 http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html
查看分區的文件系統 parted 分區 http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html
tmpfs大小小於實際內存大小(共享內存基於它實現,有待進一步研究):
VM由RM+Swap兩部分組成,因此tmpfs最大的存儲空間可達(The size of RM + The size of Swap)。 但是對於tmpfs本身而言,它並不知道自己使用的空間是RM還是Swap,這一切都是由內核的vm子系統管理的。
tmpfs默認的大小是RM的一半,假如你的物理內存是1024M,那么tmpfs默認的大小就是512M
一般情況下,是配置的小於物理內存大小的。
tmpfs配置的大小並不會真正的占用這塊內存,如果/dev/shm/下沒有任何文件,它占用的內存實際上就是0字節;如果它最大為1G,里頭放有100M文件,那剩余的900M仍然可為其它應用程序所使用,但它所占用的100M內存,是不會被系統回收重新划分的。
當刪除tmpfs中文件,tmpfs 文件系統驅動程序會動態地減小文件系統並釋放 VM 資源。
裸盤 lsscsi命令查看