在 CentOS 上 overlay(OverlayFS)配置或挂载慢,通常和存储后端、内核参数、Docker/容器运行时配置有关。下面按「常见原因 → 解决办法」给你一套排查和提速思路。
mount | grep overlay
cat /proc/mounts | grep overlay
常见场景:
overlay2mount -t overlayoverlay 最佳搭配:
dir_index)ftype=1)❌ 不支持或慢的:
ftype 的 XFSxfs_info / | grep ftype
如果不是 ftype=1:
⚠️ overlay 会退化为极慢模式,甚至报错
✅ 解决:
mkfs.xfs -n ftype=1 /dev/sdX
dumpe2fs /dev/sdX | grep "dir_index"
如果没有:
tune2fs -O dir_index /dev/sdX
e2fsck -D /dev/sdX
# /etc/docker/daemon.json
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
重启:
systemctl restart docker
CentOS 默认开启 SELinux,对 overlay 有性能影响。
setenforce 0
如果明显变快:
container-selinux 最新版✅ 推荐:
yum update container-selinux
overlay 对 随机写 非常敏感。
iostat -x 1
如果:
%util 很高await 很大✅ 解决方案:
systemctl stop docker
mv /var/lib/docker /data/docker
ln -s /data/docker /var/lib/docker
systemctl start docker
CentOS 7 默认 3.10 内核,overlay 性能 & 稳定性差。
✅ 强烈建议:
yum install -y kernel-ml
或升级到:
每一层都会:
✅ 建议:
RUN yum install -y a b c && \
yum clean all
# 1. 文件系统
df -T /
xfs_info / | grep ftype
# 2. Docker
docker info | grep Storage
# 3. SELinux
getenforce
# 4. 内核
uname -r
你可以贴一下:
cat /etc/redhat-release)mount | grep overlay 输出我可以直接给你针对性一条龙配置。