【常见问题】排查DataEase服务器磁盘空间占用情况并清理


Administrator
飞致云 发布于 2022-08-30 / 1137 阅读 / 0 评论 /
前言当部署 DataEase 机器的磁盘空间不足时,有可能会引起一些预料之外的情况,比如曾有开源社区的用户遇到过:磁盘剩余容量少于 5G 时,doris-fe 容器总是莫名其妙就挂了,导致DataEase的部分功能使用异常。部署 DataEase 的服务器,我们的官方建议是:操作系统: CentOS

前言

当部署 DataEase 机器的磁盘空间不足时,有可能会引起一些预料之外的情况,比如曾有开源社区的用户遇到过:磁盘剩余容量少于 5G 时,doris-fe 容器总是莫名其妙就挂了,导致DataEase的部分功能使用异常。
部署 DataEase 的服务器,我们的官方建议是:

  • 操作系统: CentOS 7.x

  • CPU/内存: 4核8G

  • 磁盘空间: 200G

但是大部分的开源用户的数据体量并不是很大,那么就不需要给服务器分配这么多的磁盘空间,200G 只是我们建议的磁盘空间大小,测试的话 40G 的磁盘空间也可以使用。那么当磁盘空间不足时,我们应当如何清理磁盘空间呢?下面让我们一起排查一下服务器的磁盘空间占用情况,并进行清理。

操作步骤

1 df -h 命令查看磁盘状态

image-1661854275671

2 在服务器执行命令,查看磁盘资源的占用情况,看看是哪个目录占用了空间

# 切换到根目录下
cd /
# 查看根目录下,第一层文件的磁盘资源占用情况
du -h -x --max-depth=1
 
# 对结果进行排序展示
du -h -x --max-depth=1|sort -n
 
# 或者看看最大的消耗在哪里
du -h -x --max-depth=1|grep [G]

image-1661854302568

# 也可以搜索深度做到第二层
du -h -x --max-depth=2|sort -n
 
# 或者切换到某个指定目录下,查看此目录下各个文件磁盘资源占用情况
cd /opt
du -sm *|sort -n

image-1661854311688
image-1661854316670

3 排查 Docker 目录文件磁盘空间的占用情况

# 进入DataEase 默认docker的安装目录(默认目录为/var/lib/docker)
cd /var/lib/docker
 
# 查看当前目录的磁盘占用大小
du -sh

image-1661854332526

4 通过上面步骤我们可以找到占用磁盘较大的目录或文件,DataEase 无关的文件请自行判断一下是否可以进行清理,如果是 DataEase 相关的 Docker 镜像所占用的空间较大,可以参考下文进行清理

清理磁盘空间

5 系统日志的清理

5.1 rsyslog 日志

作为传统的系统日志服务,把所有收集到的日志都记录到 /var/log/ 目录下的各个日志文件中。
此类日志默认保持1个月, 基本无需手工删除,常见的日志文件如下(对于过大文件可以随便删除):

image-1661854408056

image-1661854421633

5.2 systemd-journal 日志

一些 rsyslog 无法收集的日志也会被 journal 记录,存放路径:/var/log/journal
此类日志默认的保持策略一般情况下是固定大小,可以通过 journalctl 命令设置和改变 journal 日志文件大小:

1)只保留近一周的日志
journalctl --vacuum-time=1w
  
2)只保留500MB的日志
journalctl --vacuum-size=500M
  
3)直接删除 /var/log/journal/ 目录下的日志文件
rm -rf /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1
 
 
# 执行过程中可能产生的问题与分析解决
# 执行 journalctl --vacuum-time=1w 命令时报错:Error was encountered while opening journal files: Input/output error
# 问题分析:日志文件损坏
# 解决方法:删除之前的日志,并重启 journalctl 服务
mv journal/f9d400c5e1e8c3a8209e990d887d4ac1 journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk
systemctl restart systemd-journald.service
 
# 查看 /var/log/journal/ 日志目录如下:
ll /var/log/journal/
# drwxr-sr-x  2 root systemd-journal  4096 Jan 22 11:26 f9d400c5e1e8c3a8209e990d887d4ac1
# drwxr-sr-x+ 2 root systemd-journal 12288 Jan 14 15:37 f9d400c5e1e8c3a8209e990d887d4ac1_bk
 
# 然后,再执行 journalctl 限制日志的命令:
# journalctl --vacuum-time=1w
Vacuuming done, freed 0B of archived journals on disk.
# journalctl --vacuum-size=500M
Vacuuming done, freed 0B of archived journals on disk.

image-1661854450396



是否对你有帮助?