您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何在Linux上使用文件系統tmpfs”,在日常操作中,相信很多人在如何在Linux上使用文件系統tmpfs問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何在Linux上使用文件系統tmpfs”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
tmpfs介紹
tmpfs是一種虛擬內存文件系統,而不是塊設備。是基于內存的文件系統,創建時不需要使用mkfs等初始化
它最大的特點就是它的存儲空間在VM(virtual memory),VM是由linux內核里面的vm子系統管理的。
linux下面VM的大小由RM(Real Memory)和swap組成,RM的大小就是物理內存的大小,而Swap的大小是由自己決定的。
Swap是通過硬盤虛擬出來的內存空間,因此它的讀寫速度相對RM(Real Memory)要慢許多,當一個進程申請一定數量的內存時,如內核的vm子系統發現沒有足夠的RM時,就會把RM里面的一些不常用的數據交換到Swap里面,如果需要重新使用這些數據再把它們從Swap交換到RM里面。如果有足夠大的物理內存,可以不劃分Swap分區。
VM由RM+Swap兩部分組成,因此tmpfs最大的存儲空間可達(The size of RM + The size of Swap)。 但是對于tmpfs本身而言,它并不知道自己使用的空間是RM還是Swap,這一切都是由內核的vm子系統管理的。
tmpfs默認的大小是RM的一半,假如你的物理內存是1024M,那么tmpfs默認的大小就是512M
一般情況下,是配置的小于物理內存大小的。
tmpfs配置的大小并不會真正的占用這塊內存,如果/dev/shm/下沒有任何文件,它占用的內存實際上就是0字節;如果它最大為1G,里頭放有100M文件,那剩余的900M仍然可為其它應用程序所使用,但它所占用的100M內存,是不會被系統回收重新劃分的。
當刪除tmpfs中文件,tmpfs 文件系統驅動程序會動態地減小文件系統并釋放 VM 資源。
#########################
tmpfs的用途
例如:
Oracle 中的Automatic Memory Management特性就使用了/dev/shm。
LINUX中可以把一些程序的臨時文件放置在tmpfs中,利用tmpfs比硬盤速度快的特點提升系統性能。
調整tmpfs大小大致有以下三種方法:
1.直接掛載到需要的目錄--比如系統的臨時目錄-可以根據實際需要掛載某個程序的臨時文件的目錄
[root@bys3 ~]# mount -t tmpfs -o size=20m tmpfs /tmp
[root@bys3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 10G 4.7G 69% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 502M 0 502M 0% /dev/shm
tmpfs 20M 0 20M 0% /tmp
由于沒有掛載之前/tmp目錄下的文件也許正在被使用,因此掛載之后系統也許有的程序不能正常工作。可以寫入/etc/fstab,這樣重啟后也有效。
2./etc/fstab文件來修改/dev/shm的容量(增加size=100M選項即可),修改后,重新掛載即可:
[root@bys3 ~]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults,size=600M 0 0
tmpfs /tmp tmpfs defaults,size=25M 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda3 swap swap defaults 0 0
/dev/sda5 swap swap defaults 0 0
[root@bys3 ~]# mount -a --測試/etc/fstab無錯誤,重啟OS系統
[oracle@bys3 ~]$ df -h --重啟后的信息如下,tmpfs文件系統的對應條目已經改變為配置的
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 10G 4.7G 69% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 600M 0 600M 0% /dev/shm
tmpfs 25M 0 25M 0% /tmp
3./dev/shm建一個tmp目前,并與/tmp綁定。 --這方法有點煩瑣,不如方法1方便快捷。
[root@bys3 ~]# mkdir /dev/shm/tmp
[root@bys3 ~]# chmod 1777 /dev/shm/tmp
[root@bys3 ~]# mount --bind /dev/shm/tmp /tmp -注意mount --bind 這里bind前是兩個-
[root@bys3 ~]# ls -ld /tmp
drwxrwxrwt 2 root root 40 Dec 8 12:15 /tmp
[root@bys3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 10G 4.7G 69% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 600M 0 600M 0% /dev/shm
tmpfs 600M 0 600M 0% /tmp ----可以看到/tmp使用到了 /dev/shm的空間。
到此,關于“如何在Linux上使用文件系統tmpfs”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。