OverlayFS 是 Linux 中常用的联合文件系统,广泛应用于容器技术(Docker等)和轻量级系统部署。以下是优化 Overlay 文件系统使用的建议:
# 查看当前存储驱动
docker info | grep "Storage Driver"
# 增加 inotify 监视限制(适用于大量文件场景)
echo "fs.inotify.max_user_instances=1024" >> /etc/sysctl.conf
echo "fs.inotify.max_user_watches=1048576" >> /etc/sysctl.conf
sysctl -p
# 示例优化的挂载命令
mount -t overlay overlay -o lowerdir=/lower,/lower2,upperdir=/upper,workdir=/work /merged
推荐选项:
- redirect_dir=on
:减少白页(whiteout)文件数量(内核4.10+)
- index=on
:启用索引功能(内核4.13+)
- metacopy=on
:减少拷贝操作(内核4.19+)
# 在 /etc/docker/daemon.json 中添加
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true",
"overlay2.size=20G"
]
}
# 监控 overlay 挂载点性能
df -h /var/lib/docker/overlay2
iotop -o
dmesg | grep overlay
# 定期清理不再使用的层
docker system prune -a --volumes
bash
echo "none" > /sys/block/sdX/queue/scheduler
bash
mount -o remount,noatime /upper
问题1:docker: Error response from daemon: open /var/lib/docker/overlay2: too many levels of symbolic links
解决:
systemctl stop docker
rm -rf /var/lib/docker/overlay2
systemctl start docker
问题2:磁盘空间不足
解决:
# 查看各层大小
du -sh /var/lib/docker/overlay2/*
# 清理
docker system prune -a
通过以上优化措施,可以显著提高 Overlay 文件系统的性能和稳定性,特别是在容器密集部署环境中。