/dev/shm/是linux下一個很是有用的目錄,由於這個目錄不在硬盤上,而是在內存裏。所以在linux下,就不須要大費周折去建ramdisk,直接使用/dev/shm/就可達到很好的優化效果。
/dev /shm/須要注意的一個是容量問題,在linux下,它默認最大爲內存的一半大小,使用df -h命令能夠看到。但它並不會真正的佔用這塊內存,若是/dev/shm/下沒有任何文件,它佔用的內存實際上就是0字節;若是它最大爲1G,裏頭放有 100M文件,那剩餘的900M仍然可爲其它應用程序所使用,但它所佔用的100M內存,是毫不會被系統回收從新劃分的,不然誰還敢往裏頭存文件呢?
默認的最大一半內存大小在某些場合可能不夠用,而且默認的inode數量很低通常都要調高些,這時能夠用mount命令來管理它。 mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shmphp
在2G的機器上,將最大容量調到1.5G,而且inode數量調到1000000,這意味着大體可存入最多一百萬個小文件。html
爲當/dev/shm空間不夠時能夠佔用swap的空間,因此不用擔憂存儲空間不夠用。想一想看,從磁盤IO操做到內存操做,php讀寫SESSION的速度會快多少?只是須要注意,存儲在/dev/shm的數據,在服務器重啓後會所有丟失。node
默認系統就會加載/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(--bind )
在使用mount --bind olderdir newerdir命令來掛載一個目錄到另外一個目錄後,newerdir的權限和全部者等全部信息會發生變化。掛載後的目錄繼承了被掛載目錄的全部屬性,除了名稱。
巧用tmpfs加速你的linux服務器,就是使用虛擬磁盤來存放squid的緩存文件和php的seesion。速度快很多哦!
默認系統就會加載/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內存,我以爲http://www.linuxaid.com.cn/articles/4/4 /441672019.shtml裏使用ramdisk的方法還不如直接使用tmpfs,至少每次啓動不用mkfs,還能夠動態改變大小。這時的/tmp 實際就是/dev/shm/tmp
而後重啓一下服務,ok,如今全部的squid緩存文件都保存倒tmpfs文件系統裏了,很快哦。
2. 對php性能的優化
對於一個訪問量大的以apache+php的網站,可能tmp下的臨時文件都會不少,好比seesion或者一些緩存文件,那麼你能夠把它保存到tmpfs文件。
保存seesion的方法很簡單了只要修改php.ini就好了,因爲我已經把/dev/stm/tmp與/tmp綁定,因此不改寫也行,至於php程序產生的緩存文件那隻能改本身的php程序了:)
至於tmpfs的其餘應用,我想你們可能經過這篇文章會有所啓發。linux