mount修改/dev/shm的大小

1、關於 /dev/shm 目錄

  • 目錄路徑
    /dev/shm 目錄位於 linux 系統的內存中,而不在磁盤裏,所以它的效率非常高,其上級目錄 /dev 主要是一些設備管理文件,例如磁盤、內存等。
  • 容量大小
    linux系統中,默認加載 /dev/shm 容量的大小是內存的一半,命令 df -h 可查看其大小,命令free -m可查看內存大小。例如內存約 1800M 的話,則 /dev/shm 大小約爲 900M。但是呢,它並不會真正去佔用這塊內存資源,如果/dev/shm/下沒有任何文件,那它佔用的內存實際上就是0字節,如果/dev/shm目錄下有200M的文件,那麼剩下的700M內存資源可以繼續給其他程序使用。
    在這裏插入圖片描述

2、 關於 tmpfs

tmps定義
  • tmpfs ,臨時文件系統,是一種基於內存的文件系統;
  • 它和虛擬磁盤ramdisk比較類似像,但不完全相同,和ramdisk一樣,tmpfs可以使用RAM,但它也可以使用swap分區來存儲,而且傳統的ramdisk是個塊設備,要用mkfs來格式化它,才能真正地使用它;
  • tmpfs是一個文件系統,並不是塊設備,只是安裝它,就可以通過mount命令來使用;
  • tmpfs是最好的基於RAM的文件系統,默認情況下,tmpfs會mount到/dev/shm目錄。
tmps優勢
  • 動態文件系統的大小,tmpfs 文件系統驅動程序會動態地增加或者減小文件系統並釋放 VM 資源;
  • 擁有閃電般的速度,典型的 tmpfs 文件系統會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的;
  • tmpfs 數據在重新啓動之後不會保留,因爲虛擬內存本質上就是易失的。所以有必要做一些腳本做諸如加載,綁定的操作。

3、修改/dev/shm大小

當默認的大小不夠使用,而其他程序佔用的內存又比較少的時候,可以通過重新掛載來修改其大小

  • 通過 mount 修改,重啓後失效
# 普通快速修改
# mount -o size=1216M  -o  remount  /dev/shm
# 將inode數量調到1000000,那麼預計最多可存入一百萬個小文件
# mount -o size=1216M  -o nr_inodes=1000000 -o noatime,nodiratime  -o  remount  /dev/shm

在這裏插入圖片描述

  • 通過/etc/fstab修改,永久生效
# 修改 tmpfs size 
# echo 'tmpfs                /dev/shm             tmpfs   defaults,size=1.2G        0 0' >>  /etc/fstab

在這裏插入圖片描述

# 修改後,重新掛載生效
# mount -o remount /dev/shm

4、文件佔用內存測試

  • 查看原有內存佔用
# 可以看到share目錄爲0,buff/cache 緩存了366M文件在內存中
# free  -m

在這裏插入圖片描述

  • 通過 dd 創建一個1024M的文件
# 可以看到share目錄下多了1024M,buff/cache 也多了1G,可用內存減少了1G
# dd if=/dev/zero of=/dev/shm/test.random  bs=1M count=1024

在這裏插入圖片描述

5、文件傳輸速度對比

寫兩個小腳本傳輸文件,通過計算時間差來對比傳輸速度

[root@VM_0_14_centos mnt]# du -sh /mnt/test.random 
1.1G	/mnt/test.random
[root@VM_0_14_centos mnt]# cat test_shm.sh 
#!/bin/sh

echo `date +%F%t%T`

cp /mnt/test.random  /dev/shm/

echo `date +%F%t%T
[root@VM_0_14_centos mnt]# cat test_tmp.sh 
#!/bin/sh

echo `date +%F%t%T`

cp /mnt/test.random  /tmp/

echo `date +%F%t%T`
[root@VM_0_14_centos mnt]# chmod +x test_shm.sh 
[root@VM_0_14_centos mnt]# chmod +x test_tmp.sh 
# 可以看到傳輸速度相對快一些
[root@VM_0_14_centos mnt]# ./test_shm.sh 
2019-09-06 01:25:20
2019-09-06 01:25:26
[root@VM_0_14_centos mnt]# ./test_tmp.sh 
2019-09-06 01:25:33
2019-09-06 01:25:43
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章