首頁 > 運維 > linux運維 > linux tmpfs是什麼

linux tmpfs是什麼

青灯夜游
發布: 2023-04-10 17:35:15
原創
5144 人瀏覽過

在linux中,tmpfs是指臨時檔案系統,是一種基於記憶體的檔案系統,可以使用使用者的記憶體或swap分割區來儲存檔案;簡單來說,tmpfs主要儲存暫存的檔案。 tmpfs系統的優點:1、動態檔案系統的大小;2、擁有閃電般的速度。

linux tmpfs是什麼

本教學操作環境:linux7.3系統、Dell G3電腦。

Tmpfs是什麼

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用滿,這個時候就需要調整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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板