在linux中,tmpfs是指臨時檔案系統,是一種基於記憶體的檔案系統,可以使用使用者的記憶體或swap分割區來儲存檔案;簡單來說,tmpfs主要儲存暫存的檔案。 tmpfs系統的優點:1、動態檔案系統的大小;2、擁有閃電般的速度。
本教學操作環境:linux7.3系統、Dell G3電腦。
tmpfs(暫存檔案系統)是Linux/Unix系統上的一種基於記憶體的檔案系統。 tmpfs可以使用您的記憶體或swap分割區來儲存檔案。由此可見,tmpfs主要儲存 暫存的檔案。
tmpfs和虛擬磁碟ramdisk比較類似像,但不完全相同,和ramdisk一樣,tmpfs可以使用RAM,但它也可以使用swap分區來存儲,而且傳統的ramdisk是個塊設備,要用mkfs來格式化它,才能真正地使用它;而tmpfs是一個檔案系統,並不是塊設備,只是安裝它,就可以使用了。 tmpfs是最好的基於RAM的檔案系統。
優勢 :
1、 動態檔案系統的大小。
2、tmpfs 的另一個主要的好處是它閃電般的速度。因為典型的tmpfs檔案系統會完全駐留在記憶體 RAM 中,讀寫幾乎可以是瞬間的。同時它也有一個缺點tmpfs資料在重新啟動之後不會保留,因為虛擬記憶體本質上就是易失的。所以有必要做一些腳本做諸如加載,綁定的操作。
注意:tmpfs不具備持久性,重啟後資料不保留,請務必注意。
在平常工作中,我們經常需要查看Linux伺服器磁碟掛載使用情況,可以使用df命令,不知大家注意到沒有,我們使用此命令除了會查看到系統盤以及數據盤掛載情況,還會看到一個tmpfs也在掛載。
[root@test ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 40G 1.1G 37G 3% / tmpfs tmpfs 499M 0 499M 0% /dev/shm
同時可以注意到,這個tmpfs大小是499M, 大小和記憶體相比,約為記憶體的一半。
[root@test~]# free -m total used free shared buffers cached Mem: 996 124 872 0 7 57 -/+ buffers/cache: 59 936 Swap: 0 0 0Swap: 2064376 0 2064376
我們透過df可以看到tmpfs是掛載到/dev/下的shm目錄,tmpfs是什麼呢? 其實是一個臨時檔案系統,駐留在記憶體中,所以/dev/shm/這個目錄不在硬碟上,而是在記憶體裡。因為是在記憶體裡,所以讀寫非常快,可以提供較高的存取速度。 linux下,tmpfs預設最大為記憶體的一半大小,使用df -h指令剛才已經看到了,但是這個df查看到的掛載記憶體大小的數值,如果沒有使用,是沒有去真正佔用的,只有真正在tmpfs儲存資料了,才會去佔用。例如,tmpfs大小是499M,用了10M大小,記憶體裡就會使用真正使用10M,剩餘的489M是可以繼續被伺服器其他程式來使用的。但因為資料是在記憶體裡,所以斷電後檔案會遺失,記憶體資料不會和硬碟中資料一樣可以永久保存。了解了tmpfs這個特性可以用來提高伺服器效能,把一些對讀寫效能要求較高,但是資料又可以遺失的這樣的資料保存在/dev/shm中,來提高存取速度。
有時候,當應用程式使用到Tmpfs時,而在部署的時候如果沒有對應用程式佔用的記憶體做足夠的評估時,就有可能把Tmpfs用滿,這個時候就需要調整Tmpfs的大小了,當然,調整的大小不能大於你機器內存大小,否則,你只能換機器了,又或者是優化你的應用程式。
[root@test]# mount -o remount,size=777M tmpfs /dev/shm [root@test]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 40G 1.1G 37G 3% / tmpfs tmpfs 777M 0 777M 0% /dev/shm
這種修改是暫時修改,重新啟動後會恢復正常,恢復為記憶體一半大小。
永久修改可以
vim /etc/fstab 把tmpfs这一行改为: tmpfs /dev/shm tmpfs defaults,size=777M 0 0
這樣設定後重啟會自動掛載為777M大小,永久生效。
最後在說下tmpfs的一些應用,tmpfs用途還是較廣的,Linux中可以把一些程式的臨時檔案放置在tmpfs中,利用tmpfs比硬碟速度快的特性來提升系統效能。例如可以用來放squid程式的快取檔案。當然,還有其他的用途,我們應該想到,tmpfs的掛載點既然能當作普通磁碟使用,也就能當作nfs的共享目錄使用。但用tmpfs做nfsd共享需要考慮網卡速度和tmpfs讀寫速度二者孰為瓶頸,如果網卡速度是瓶頸,那麼直接用nfs創建一個普通磁碟目錄即可。因為tmpfs重啟後遺失,使用tmpfs做nfs前,必須先從磁碟或用rsync從其他伺服器拷貝到tmpfs。更新文件時,先更新磁碟上的文件,或更新rsync的來源。然後設定定時進程,每分鐘從磁碟或rsync裡將程式同步到tmpfs即可。
tmpfs的其他應用程式希望本文對大家使用tmpfs有所幫助,另外,請務必注意,重啟後資料會遺失!
相關推薦:《Linux影片教學》
以上是linux tmpfs是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!