歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux目錄下/dev/shm的理解和使用

Linux目錄下/dev/shm的理解和使用

日期:2017/2/28 14:31:56   编辑:Linux教程

一、/dev/shm理論

/dev/shm/是linux下一個非常有用的目錄,因為這個目錄不在硬盤上,而是在內存裡。因此在linux下,就不需要大費周折去建ramdisk,直接使用/dev/shm/就可達到很好的優化效果。 /dev /shm/需要注意的一個是容量問題,在linux下,它默認最大為內存的一半大小,使用df -h命令可以看到。但它並不會真正的占用這塊內存,如果/dev/shm/下沒有任何文件,它占用的內存實際上就是0字節;如果它最大為1G,裡頭放有 100M文件,那剩余的900M仍然可為其它應用程序所使用,但它所占用的100M內存,是絕不會被系統回收重新劃分的,否則誰還敢往裡頭存文件呢?

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

  tmpfs有以下優勢:

  1,動態文件系統的大小。

  2,tmpfs 的另一個主要的好處是它閃電般的速度。因為典型的 tmpfs 文件系統會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的。

  3,tmpfs 數據在重新啟動之後不會保留,因為虛擬內存本質上就是易失的。所以有必要做一些腳本做諸如加載,綁定的操作。

二、修改/dev/shm大小

默認的最大一半內存大小在某些場合可能不夠用,並且默認的inode數量很低一般都要調高些,這時可以用mount命令來管理它。

#mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

在2G的機器上,將最大容量調到1.5G,並且inode數量調到1000000,這意味著大致可存入最多一百萬個小文件。

如果需要永久修改/dev/shm的值,需要修改/etc/fstab

tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0

#mount -o remount /dev/shm

三、/dev/shm應用

  首先在/dev/shm建個tmp文件夾,然後與實際/tmp綁定

  #mkdir /dev/shm/tmp

  #chmod 1777 /dev/shm/tmp

  #mount –bind /dev/shm/tmp /tmp(–bind )

  在使用mount –bind olderdir newerdir命令來掛載一個目錄到另一個目錄後,newerdir的權限和所有者等所有信息會發生變化。掛載後的目錄繼承了被掛載目錄的所有屬性,除了名稱。Oracle 11g的amm內存管理模式就是使用/dev/shm,所以有時候修改MEMORY_TARGET或者MEMORY_MAX_TARGET會出現ORA-00845的錯誤

Linux目錄結構 http://www.linuxidc.com/Linux/2013-09/89743.htm

Linux學習筆記——Linux目錄配置 http://www.linuxidc.com/Linux/2012-12/75336.htm

Linux目錄配置標准FHS http://www.linuxidc.com/Linux/2012-06/62532.htm

Linux入門之 帶你剖析Linux目錄結構 http://www.linuxidc.com/Linux/2012-01/51246.htm

Linux認證輔導:關於Linux目錄及文檔權限的研究 http://www.linuxidc.com/Linux/2011-11/47970.htm

Linux認證輔導:Linux目錄的分類存放規則 http://www.linuxidc.com/Linux/2011-11/47747.htm

Copyright © Linux教程網 All Rights Reserved