linuxdevshm
① linux系統/dev/shm是什麼,如何修改
象虛擬磁碟一樣,tmpfs可以使用您的ram,但它也可以使用您的交換分區來存儲。而且傳統的虛擬磁碟是個塊設備,並需要一個mkfs之類的命令才能真正地使用它,tmpfs是一個文件系統,而不是塊設備;您只是安裝它,它就可以使用了。
tmpfs有以下優勢:
1,動態文件系統的大小。
2,tmpfs的另一個主要的好處是它閃電般的速度。因為典型的tmpfs文件系統會完全駐留在ram中,讀寫幾乎可以是瞬間的。
3,tmpfs數據在重新啟動之後不會保留,因為虛擬內存本質上就是易失的。所以有必要做一些腳本做諸如載入,綁定的操作。
好了講了一些大道理,還是講講應用吧:
首先在/dev/stm建個tmp文件夾,然後與實際/tmp綁定
mkdir/dev/shm/tmp
chmod1777/dev/shm/tmp
在使用mount--bindolderdirnewerdir命令來掛載一個目錄到另一個目錄後,newerdir的許可權和所有者等所有信息會發生變化。掛載後的目錄繼承了被掛載目錄的所有屬性,除了名稱。
② Linux內存文件系統tmpfs(/dev/shm)詳細介紹
一、/dev/shm理論
默認的Linux發行版中的內核配置都會開啟tmpfs,映射到了/dev/下的shm目錄。可以通過df
命令查看結果.
/dev/shm/是linux下一個非常有用的目錄,因為這個目錄不在硬碟上,而是在內存里。因此在linux下,就不需要大費周折去建ramdisk,直接使用/dev/shm/就可達到很好的優化效果。默認系統就會載入/dev/shm
,它就是所謂的tmpfs,有人說跟ramdisk(虛擬磁碟),但不一樣。象虛擬磁碟一樣,tmpfs
可以使用您的
RAM,但它也可以使用您的交換分區來存儲。而且傳統的虛擬磁碟是個塊設備,並需要一個
mkfs
之類的命令才能真正地使用它,tmpfs
是一個文件系統,而不是塊設備;您只是安裝它,它就可以使用了。
tmpfs有以下優勢:
1。動態文件系統的大小,/dev
/shm/需要注意的一個是容量問題,在linux下,它默認最大為內存的一半大小,使用df
-h命令可以看到。但它並不會真正的佔用這塊內存,如果/dev/shm/下沒有任何文件,它佔用的內存實際上就是0位元組;如果它最大為1G,里頭放有
100M文件,那剩餘的900M仍然可為其它應用程序所使用,但它所佔用的100M內存,是絕不會被系統回收重新劃分的
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的許可權和所有者等所有信息會發生變化。掛載後的目錄繼承了被掛載目錄的所有屬性,除了名稱。
③ Linux虛擬機磁碟使用情況疑問,請高手解答!
佔D盤的
首先虛擬機的磁碟空間在win下面是一個類似vmdk後綴名的文件,一般是在虛擬機下用多少,在win下就佔多少。
然後你在虛擬機里沒有磁碟空間可能你裝的軟體或者開發包太多了,一些驅動模塊在這個虛擬機里也編譯進去了等等。你ls -lah只是看的/目錄下文件夾的大小和文件的大小,並不是看得所以文件的大小
④ linux的/dev/shm是干什麼用的
/dev/shm這個目錄是linux下一個利用內存虛擬出來的一個目錄,這個目錄中的文件都是保存在內存中,而不是磁碟上。其大小是非固定的,即不是預先分配好的內存來存儲的。(shm == shared memory)。
linux中/dev目錄下一般都是一些設備文件,例如磁碟、內存、攝像頭等。
(4)linuxdevshm擴展閱讀
/dev/shm的容量分配:
/dev/shm的容量默認最大為內存的一半大小,使用df -h命令可以看到。但它並不會真正的佔用這塊內存,如果/dev/shm/下沒有任何文件,它佔用的內存實際上就是0位元組。
通過df -h命令,可以看到/dev/shm的文件系統為tmpfs,即為臨時文件系統。其他的幾個tmpfs的掛載目錄,其實質上於/dev/shm是一致的。例如:
>df -h
文件系統 容量 已用 可用 已用% 掛載點
dev 3.9G 0 3.9G 0% /dev
run 3.9G 656K 3.9G 1% /run
/dev/sda2 58G 12G 43G 22% /
tmpfs 3.9G 1.0G 2.9G 26% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 3.9G 0 3.9G 0% /tmp
/dev/sdb1 58G 24G 32G 44% /mnt/data
/dev/sda1 488M 26M 463M 6% /boot