51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

前言 {#heading-1}

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

  • 操作系统: CentOS 7.x

  • CPU/内存: 4核8G

  • 磁盘空间: 200G

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

操作步骤 {#heading-2}

1 df -h 命令查看磁盘状态 {#heading-3}

image-1661854275671

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

# 切换到根目录下
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 目录文件磁盘空间的占用情况 {#heading-5}

# 进入DataEase 默认docker的安装目录(默认目录为/var/lib/docker)
cd /var/lib/docker

查看当前目录的磁盘占用大小
=============


`du -sh
`

image-1661854332526

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

清理磁盘空间

5 系统日志的清理 {#heading-7}

5.1 rsyslog 日志 {#heading-8}

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

image-1661854408056

image-1661854421633

5.2 systemd-journal 日志 {#heading-9}

一些 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

赞(0)
未经允许不得转载:工具盒子 » 【常见问题】排查DataEase服务器磁盘空间占用情况并清理