记录一次实测:将 MongoDB 存储路径从系统盘迁移至独立 SSD 数据盘后,读写延迟降低 40% 的全过程
随着业务数据快速增长,MongoDB 数据库的 I/O 性能逐渐成为瓶颈。系统盘的空间和 I/O 性能已无法满足日益增长的数据存储和访问需求。为此,我们购买了一块独立的高性能 SSD 数据盘,并实施了以下迁移方案。
lsblk# 格式化为 ext4 文件系统
sudo mkfs.ext4 /dev/vdb
# 创建挂载点
sudo mkdir -p /data/mongodb
# 挂载数据盘
sudo mount /dev/vdb /data/mongodb# 停止 MongoDB 服务
sudo systemctl stop mongod
# 备份原数据目录
sudo cp -r /var/lib/mongo /var/lib/mongo.bak
# 移动数据到新位置
sudo rsync -av /var/lib/mongo/ /data/mongodb/
# 修改 MongoDB 配置文件
sudo vim /etc/mongod.conf
# 将 storage.dbPath 改为新路径: /data/mongodb# 获取数据盘 UUID
sudo blkid /dev/vdb
# 编辑 fstab 文件
sudo vim /etc/fstab
# 添加一行(替换 YOUR_UUID 为实际值)
UUID=YOUR_UUID /data/mongodb ext4 defaults,nofail 0 2sudo systemctl start mongod迁移前后,我们使用 fio 工具进行了 I/O 性能测试,结果如下:
| 指标 | 迁移前 (系统盘) | 迁移后 (SSD数据盘) | 提升幅度 |
|---|---|---|---|
| 随机读 IOPS | 1,200 | 8,600 | +616% |
| 随机写 IOPS | 800 | 6,200 | +675% |
| MongoDB 查询延迟 | 45ms | 27ms | -40% |