linux中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文件的大小。

[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有所幫助,另外,請務必注意,重啓後數據會丟失!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章