2015年1月26日 星期一

[Linux 文章收集] 拿 RAM 當硬碟來用(RAM Disk)

Source From Here 
臨時想要做個 RAM Disk, 就去翻以前寫的文章, 發現以前的 Blog 寫的真的是很亂, 還是重新整理一下好了. 

1. 目前的作法如下: 
首先在 /dev/shm 建個 tmp 文件夾,然後與實際 /tmp 綁定. 
Note. 
/dev/shm/ 目錄,其實是利用記憶體虛擬出來的磁碟空間! 由於是透過記憶體模擬出來的磁碟,因此你在這個目錄底下建立任何資料檔案時,存取速度是非常快速的!(在記憶體內工作) 不過,也由於他是記憶體模擬出來的,因此這個檔案系統的大小在每部主機上都不一樣,而且建立的東西在下次開機時就消失了! 因為是在記憶體中

作法如下: 
$ mkdir /dev/shm/tmp
$ chmod 1777 /dev/shm/tmp/
$ mkdir tmp # 在 Home 目錄下建立 tmp 目錄, 提供 mount 點
$ mount --bind /dev/shm/tmp tmp/
$ mount -l
/dev/mapper/vg_router-lv_root on / type ext4 (rw) [_CentOS-6.4-x86_]
...
/dev/shm/tmp on /root/tmp type none (rw,bind)

2. 方法2: 
這邊使用 mount type 為 tmpfs, 該類型說明如下: 
tmpfs is a common name for a temporary file storage facility on many Unix-like operating systems. It is intended to appear as a mounted file system, but stored in volatile memory instead of a persistent storage device. A similar construction is a RAM disk, which appears as a virtual disk drive and hosts a disk file system.

這邊直接在 Mounting table 進行設定, 方法如下: 
$ vi /etc/fstab # 編輯 mounting table

$ mkdir /mnt/ramfs # 建立 mount 點
$ mount /mnt/ramfs/
$ mount -l
...
none on /mnt/ramfs type tmpfs (rw,rootcontext="unconfined_u:object_r:mnt_t:s0")

3. 方法3: 
直接透過 mount 命令, 方法如下: 
$ mount -t tmpfs -o size=200m none /mnt/tmpfs
# 200m 是 200Mb 的意思, 詳情請看 man mount 裡的 tmpfs

4. 方法4 
在 Debian GNU/Linux 裡,預設上就會把記憶體拿來模擬成磁碟了,也就是您在 df 指令裡所看到的 /dev/shm。由於系統記憶體十分寶貴,所以 /dev/shm 會動態調整其大小,但您還是可以修改 /etc/default/tmpfs 來指定其限額,例: 
  1. # SHM_SIZE sets the maximum size (in bytes) that the /dev/shm tmpfs can use.  
  2. # If this is not set then the size defaults to the value of TMPFS_SIZE  
  3. if that is set; otherwise to the kernel's default.  
  4. #  
  5. # The size will be rounded down to a multiple of the page size, 4096 bytes.  
  6. SHM_SIZE=200m  
然後請再修改 /etc/fstab 讓 /tmp 在開機時能掛在 /dev/shm 上,例: 
  1. #   
  2. tmpfs /tmp tmpfs size=100m,mode=1777 0 0  
設定完成後,重新開機您就會發現 /tmp 己經掛在 tmpfs 上了: 
$ df
檔案系統 1K-區段 已用 可用 已用% 掛載點
...
tmpfs 102400 0 102400 0% /tmp


Supplement 
巧用linux服務器下的/dev/shm/,避開磁盤IO不給力! 
鳥哥 - Linux 磁碟與檔案系統管理 
讓 /tmp 使用 tmpfs 
有趣的 tmpfs(可參考阿信的寫法, 開機自動mount) 
巧用tmpfs加速你的linux服務器 
在Linux下使用RamDisk

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...