Linux 下tempfs
tmpfs是一種虛擬內(nèi)存文件系統(tǒng)务甥,而不是塊設(shè)備月劈。是基于內(nèi)存的文件系統(tǒng)呜袁,創(chuàng)建時(shí)不需要使用mkfs等初始化敌买。
它最大的特點(diǎn)就是它的存儲(chǔ)空間在VM(virtual memory),VM是由linux內(nèi)核里面的vm子系統(tǒng)管理的阶界。Linux下面VM的大小由RM(Real Memory)和swap組成,RM的大小就是物理內(nèi)存的大小虹钮,而Swap的大小是由自己決定的。
Swap是通過(guò)硬盤(pán)虛擬出來(lái)的內(nèi)存空間膘融,因此它的讀寫(xiě)速度相對(duì)RM(Real Memory)要慢許多芙粱,當(dāng)一個(gè)進(jìn)程申請(qǐng)一定數(shù)量的內(nèi)存時(shí),如內(nèi)核的vm子系統(tǒng)發(fā)現(xiàn)沒(méi)有足夠的RM時(shí)氧映,就會(huì)把RM里面的一些不常用的數(shù)據(jù)交換到Swap里面春畔,如果需要重新使用這些數(shù)
據(jù)再把它們從Swap交換到RM里面。如果有足夠大的物理內(nèi)存岛都,可以不劃分Swap分區(qū)律姨。
VM由RM+Swap兩部分組成,因此tmpfs最大的存儲(chǔ)空間可達(dá)(The size of RM + The size of Swap)臼疫。 但是對(duì)于tmpfs本身而言择份,它并不知道自己使用的空間是RM還是Swap,這一切都是由內(nèi)核的vm子系統(tǒng)管理的烫堤。
tmpfs默認(rèn)的大小是RM的一半荣赶,假如你的物理內(nèi)存是1024M,那么tmpfs默認(rèn)的大小就是512M鸽斟,一般情況下拔创,是配置的小于物理內(nèi)存大小的。tmpfs配置的大小并不會(huì)真正的占用這塊內(nèi)存富蓄,如果/dev/shm/下沒(méi)有任何文件伏蚊,它占用的內(nèi)存實(shí)際上就是0字節(jié);如果它最大為1G格粪,里頭放有100M文件躏吊,那剩余的900M仍然可為其它應(yīng)用程序所使用氛改,但它所占用的100M內(nèi)存,是不會(huì)被系統(tǒng)回收重新劃分的比伏。當(dāng)刪除tmpfs中文件胜卤,tmpfs 文件系統(tǒng)驅(qū)動(dòng)程序會(huì)動(dòng)態(tài)地減小文件系統(tǒng)并釋放 VM 資源。
LINUX中可以把一些程序的臨時(shí)文件放置在tmpfs中赁项,利用tmpfs比硬盤(pán)速度快的特點(diǎn)提升系統(tǒng)性能葛躏。