客户端访问服务器时提示一下报错:
描述为Redis
报错,连接不了Redis。
进入服务器终端,由于使用的是FinalShell
界面中就已经提示了磁盘已经满了的状态,所以基本可以确定为因为磁盘满了导致的。
使用以下命令查看当前系统磁盘占用:
df -h
文件系统 容量 已用 可用 已用% 挂载点
...
/dev/vda1 50G 49G 0 100% /
overlay 50G 49G 0 100% /data/docker/overlay2/...
...
结果显示确实是磁盘已经满了,并且基本是docker占用;但是磁盘容量只有50G,不科学。
使用以下命令查看当前系统磁盘挂载情况:
lsblk
NAME FSTYPE SIZE MOUNTPOINT
sr0 iso9660 203.7M
vda 50G
└─vda1 ext4 50G /
vdb ext4 200G
结果显示确实是有一个200G磁盘未挂载。
进入上面docker目录cd /data/docker
,在该目录下执行以下命令来查看各目录大小:
du -h --max-depth=1 ./
结果显示目录containers
占用最大,继续使用以下命令查看该目录的详细占用:
du -h --max-depth=1 ./containers/
...
12G ./containers/c5a7aaa213d8077ab3792ec93029f7929882eb498ab944f77b93273e336b9e72
...
结果显示该容器占用磁盘较大,使用如下命令查看该容器目录对应的是哪个容器:
docker inspect -f '{{.Id}} - {{.Name}} - {{range .Mounts}}{{.Source}} -> {{.Destination}}; {{end}}' $(docker ps -q)
...
c5a7aaa213d8077ab3792ec93029f7929882eb498ab944f77b93273e336b9e72 - /gitlab - ...
...
从结果中可以看到原来是gitlab占用太多导致。
进入/data/docker/containers
目录下占用最多的容器目录,并使用 ls -lh
命令展示所有的文件及目录占用大小发现占用最多的是一个log文件。
到这里就已经找到罪魁祸首了,由于服务器磁盘太小,而gitlab一直在输出日志占用了太多的磁盘空间,由于服务器中的gitlab不是我搭建的,不知道是否有用,只能暂时把服务停掉删掉日志文件。
最后重启Redis服务和数据库服务,服务恢复,问题解决。