---
# System prepended metadata

title: 建立 RAM Disk
tags: [系統工程]

---

# 建立 RAM Disk

* 先確認可用記憶體空間
```
$ free -mh
              total        used        free      shared  buff/cache   available
Mem:           15Gi       6.0Gi       8.0Gi        43Mi       1.6Gi       9.3Gi
Swap:            0B          0B          0B
```
* 建立 RAM Disk 使用目錄
```
$ sudo mkdir /opt/ramdisk

$ sudo chmod 777 /opt/ramdisk
```
* 掛在 3G 的記憶體當成 Disk 使用
```
$ sudo mount -t tmpfs -o size=3G tmpfs /opt/ramdisk/

$ df -h /opt/ramdisk
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           3.0G     0  3.0G   0% /opt/ramdisk
```
## 測試讀寫速度
### 寫入測試
* 測試在 RAM Disk 寫入一個 2g 的檔案
* 速度為 640 MB/s
```
$ sudo dd count=2k bs=1M if=/dev/zero of=/opt/ramdisk/test2g.img
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 3.35613 s, 640 MB/s

$ ls -alh /opt/ramdisk/test2g.img
-rw-r--r-- 1 root root 2.0G Mar 25 13:53 /opt/ramdisk/test2g.img
```
* 測試在一般 Disk 寫入一個 2g 的檔案
* 速度為 268 MB/s
```
$ sudo dd count=2k bs=1M if=/dev/zero of=/opt/test2g.img
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 8.01034 s, 268 MB/s

$ ls -alh /opt/test2g.img
-rw-r--r-- 1 root root 2.0G Mar 25 13:54 /opt/test2g.img
```

### 讀取測試
* 清理 cache
```
$ echo 3 | sudo tee /proc/sys/vm/drop_caches
```
* 測試在 RAM Disk 讀取一個 2g 的檔案
* 速度為 1.2 GB/s
```
$ sudo dd count=2k bs=1M if=/opt/ramdisk/test2g.img of=/dev/null
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 1.82153 s, 1.2 GB/s
```
* 測試在一般 Disk 讀取一個 2g 的檔案
* 速度為 151 MB/s
```
$ sudo dd count=2k bs=1M if=/opt/test2g.img of=/dev/null
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 14.1823 s, 151 MB/s
```

## 參考文件
https://blog.gtwang.org/linux/linux-ram-disk/
