在一台内存 32G,搭载 2 块 CPU(16 核)的服务器上,挂载了两块硬盘,固态硬盘 256 G(安装 Ubuntu 系统)作为系统盘;机械硬盘 5T,挂载到 /mnt/data 目录下,计划专门作为数据盘。
问题描述1:
我在 Ubuntu 系统安装了 Docker ,Docker Root Dir 默认为 /var/lib/docker,启动一个包含多容器的服务,所有容器启动正常,服务可用,这证明 Docker 服务和运行的容器都是正常的。
此时,我停止并删除容器,停止 Docker 服务,在 /etc/docker/daemon.json 文件中配置 Docker Root Dir 路径为 /mnt/data/docker(即将 Docker Root Dir 设置为系统挂载的机械硬盘中),启动 Docker 服务,可以正常启动;然后启动同一个包含多容器的服务,服务启动异常缓慢,并且在服务启动后,有些容器会莫名奇妙的宕掉。
问题描述2:
和问题 1 同一台机器,在 Ubuntu 系统安装了 Docker 服务,Docker Root Dir 默认为 /var/lib/docker。这是我启动一个 Mysql 8.0 容器,并通过 -v 指定将 Mysql 容器的 /var/lib/mysql/ 挂载到宿主机的 /home/workspace/mysql/data 目录下,容器正常启动,Mysql 8.0 可用。
然后,我停止并删除了这个 Mysql 容器,重新启动一个 Mysql 8.0 容器,不同的是 -v 指定将容器 /var/lib/mysql/ 挂载到宿主机的 /mnt/data/mysql/data 目录下(即挂载到了机械硬盘目录下),容器正常启动,但比较缓慢,Mysql 服务最终也可正常启动,但异常缓慢。
我测试了上面两种情况,Docker 的服务和 Docker 数据设置到两块硬盘下或者将容器的目录挂载到和服务不同的磁盘下,Docker 的性能大打折扣(虽然性能有影响是可以预见的,但影响这么打还是没有想到,已经影响到服务的正常启动了)。
所以,服务器磁盘容量过大,会影响 Docker 性能吗?或者说服务器挂载并使用多块硬盘会对 Docker 性能造成很大损害吗?
希望得到有识之士的解答,谢谢!