預設系統會載入/dev/shm
,它就是所謂的tmpfs,有人說跟ramdisk(虛擬磁碟),但不一樣。象虛擬磁碟一樣,tmpfs
可以使用您的 RAM,但它也可以使用您的交換分區來儲存。而且傳統的虛擬磁碟是個塊裝置,並需要一個 mkfs
之類的命令才能真正地使用它,tmpfs 是一個檔案系統,而不是塊裝置;您只是安裝它,它就可以使用了。
tmpfs有以下優勢:
1。動態檔案系統的大小,
2。tmpfs 的另一個主要的好處是它閃電般的速度。因為典型的 tmpfs
檔案系統會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的。
3。tmpfs 資料在重新啟動之後不會保留,因為虛擬記憶體本質上就是易失的。所以有必要做
一些指令碼做諸如載入,綁定的操作。
首先在/dev/shm建個tmp檔案夾,然後與實際/tmp綁定
mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp
1. squid的緩衝目錄設定
vi /etc/squid/squid.conf
修改成
cache_dir ufs /tmp 256 16 256
這裡的第一個256表示使用256M記憶體,重啟一下服務,現在所有的squid快取檔案都儲存倒tmpfs檔案系統裡了。
/dev/shm/需要注意的一個是容量問題,在linux下,它預設最大為記憶體的一半大小,使用df -h命令可以看到。但它並不會真正的佔用這塊記憶體,如果/dev/shm/下沒有任何檔案,它佔用的記憶體實際上就是0位元組;如果它最大為1G,裡頭放有100M檔案,那剩餘的900M仍然可為其它應用程式所使用,但它所佔用的100M記憶體,是絕不會被系統回收重新劃分的。
預設的最大一半記憶體大小在某些場合可能不夠用,並且預設的inode數量很低一般都要調高些,這時可以用mount命令來管理它。
mount -o size=1500M -o nr_inodes=1000000 -onoatime,nodiratime -o remount /dev/shm
在2G的機器上,將最大容量調到1.5G,並且inode數量調到1000000,這意味著大致可存入最多一百萬個小檔案。
例如:為了將/dev/shm的大小增加到1GB,修改/etc/fstab的這行:預設的:
none /dev/shm tmpfs defaults 0 0
改成:
none /dev/shm tmpfs defaults,size=1024M 0 0
size參數也可以用G作單位:size=1G。
重新mount /dev/shm使之生效:
# mount -o remount /dev/shm
馬上可以用"df -h"命令檢查變化。
也可以用下面的方式
1.# mkdir /mnt/tmp
2.# mount -t tmpfs -o size=256m,mode=1777tmpfs /mnt/tmp
這裡的 256m
就是 256Mb 的意思。
卸載:
1.# umount /mnt/tmp
當然也可以添加相應的設定到 /etc/fstab
裡。
編輯 /etc/fstab,加入或修改 /tmp
這行:
tmpfs /tmp tmpfs size=256m,mode=1777 0 0
直接使用 /dev/shm
的 tmpfs 應該是最方便的。
/dev/shm 預設是掛載 ram的一半大小。