/dev/shm 介紹 --轉載

huakaibird發表於2007-08-30

預設系統就會載入/dev/shm ,它就是所謂的tmpfs,有人說跟ramdisk(虛擬磁碟),但不一樣。象虛擬磁碟一樣,tmpfs 可以使用您的 RAM,但它也可以使用您的交換分割槽來儲存。而且傳統的虛擬磁碟是個塊裝置,並需要一個 mkfs 之類的命令才能真正地使用它,tmpfs 是一個檔案系統,而不是塊裝置;您只是安裝它,它就可以使用了。

tmpfs有以下優勢:
1。動態檔案系統的大小,
2。tmpfs 的另一個主要的好處是它閃電般的速度。因為典型的 tmpfs 檔案系統會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的。
3。tmpfs 資料在重新啟動之後不會保留,因為虛擬記憶體本質上就是易失的。所以有必要做一些指令碼做諸如載入,繫結的操作。

好了講了一些大道理,大家看的煩了吧,還是講講我的應用吧:)

首先在/dev/stm建個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記憶體,我覺得使用ramdisk的方法還不如直接使用tmpfs,至少每次啟動不用mkfs,還可以動態改變大小。

然後重啟一下服務,ok,現在所有的squid快取檔案都儲存倒tmpfs檔案系統裡了,很快哦。


2。對php效能的最佳化

對於一個訪問量大的以apache+php的網站,可能tmp下的臨時檔案都會很多,比如seesion或者一些快取檔案,那麼你可以把它儲存到tmpfs檔案。

儲存seesion的方法很簡單了只要修改php.ini就行了,由於我已經把/dev/stm/tmp與/tmp繫結,所以不改寫也行,至於php程式產生的快取檔案那隻能改自己的php程式了:)

希望我的這個方法,能對你有所啟發。

在紅帽企業版Linux的應用程式如果遵循POSIX或者使用GLIBC(2.2和更高版本),通常使用/dev/shm作共享記憶體(shm_open,shm_unlink)。/dev/shm是一個臨時檔案系統(tmpfs),可以從/etc/fstab中mount。因此,支援標準的引數例如"size",可以用來增加或者減少在/dev/shm上的tmpfs大小.(預設的,它的大小是系統RAM的一半)。

例如:為了將/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"命令檢查變化。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/545828/viewspace-967056/,如需轉載,請註明出處,否則將追究法律責任。

相關文章