问题及追踪
-
对于生产环境,尤其是配置较低的生产环境,一定要注意资源的使用
-
今天就遇到一个问题,服务器磁盘接近满了,部署的平台服务异常,无法提供服务
-
简单说一下客户环境:客户只有老的
Windows server
服务器,没有经费采购新的服务器,根据客户接入设备数量和用户数量等条件,我们决定就在这台Windows
机器上部署平台 -
我们在服务器里使用
Virtual Box
装了CentOS
虚拟机,部署平台服务。初始给虚拟机分配了250G
磁盘空间,root
目录50G
(默认的,没动它),其余都给了home
目录(平台服务基本都部署在home
),这里的截图是处理之后的(磁盘满的问题处理掉了)
-
磁盘空间满,还是比较容易排查的。
df -hl
看到下,是root
目录接近满了 -
继续追踪了下原因,使用
find
命令查找大文件,发现是clickhouse
相关目录占用了大量空间 -
命令如下:从根目录开始查找超过800M的大文件
find / -type f -size +800M -exec ls -lh {} \; | awk '{ print $9 ":" $5 }';
clickhouse
是我们用来存储前端雷达及卡口设备实时数据的大数据组件,对服务器性能要求还是比较高的。当接入设备后,确实会产生很大的数据量,我们会提前准备好磁盘空间- 但是实际上,这个客户并没有接入前端雷达及卡口设备,只是服务启动着,有两个
Java
服务连接着clickhouse
数据库,但并没有数据写入需求,数据查询次数也很少 - 至于为什么不使用也部署了它,是为了保持客户环境里的平台,与我们的发行版本保持一致性,代码版本一致。后续客户有需要时,重新找一台配置好点的服务器,重新部署下
clickhouse
数据库即可
问题处理
- 发现了问题,先解决掉问题,让客户能正常使用平台
- 关闭
clickhouse
服务,关闭开机启动,删除对应文件夹
systemctl stop clickhouse-server
systemctl disable clickhouse-server
rm -rf /var/lib/clickhouse
rm -rf /var/log/clickhouse-server
clickhouse
部署后,由于没有真正使用它,也就直接使用了默认配置,它的存储和日志也就都落在了root
目录下- 其实
clickhouse
带来的磁盘空间占用问题,以前处理过一次,也记录了一篇博客ClickHouse默认库system日志清理方法(query_log、asynchronous_metric_log) clickhouse
运行,会产生一些系统日志,记录查询和写入的一些操作,便于后续对clickhouse
使用进行分析和优化,它们存储在默认库system
里,时间长了也会占用很多空间
- 但是我们可以通过修改配置,只保留最近一周或三天的系统日志,这样就不会占用很多空间,具体做法可以参考我前面提到的博客,里面有详细介绍
- 对于真正用到
clickhouse
服务的客户,我们会要求服务器性能好一点,内存至少32G
,16核cpu
,磁盘1T
等,也会提前设置好保留日志天数 - 没想到的是,没有对
clickhouse
数据库的写入操作(只有极少量查询操作),也会产生很多系统日志,然后慢慢的占用磁盘空间 - 这次事件,是
clickhouse
服务部署8个月左右发生的,占用了磁盘35G
左右的空间 - 在此再写篇博客记录下,
clickhouse
使用,一定要注意清理系统日志。生产平台使用,一定要注意清理日志,时刻关注磁盘空间。