基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
关于 OBServer 进程 crash 时产生的 coredump 文件大小及压缩说明
更新时间:2026-06-04 01:56
本文主要介绍 OBServer 进程 crash 时产生的 coredump 文件的大小以及如何进行 core 文件的在线压缩。
详细说明
OBServer 进程产生的 coredump 文件大小
实测表明,OBServer 进程产生的 coredump 文件大小基本跟 OBServer 进程 crash 时刻占用的 VIRT(进程虚拟内存地址空间总大小)一致:
| OBServer 进程 VIRT(虚拟内存)的大小 | 最终 dump 出来的 core 文件大小 |
|---|---|
| 114 G | 114G |
| 47.6 G | 48 G |
| 19.3 G | 19 G |
| 12.4 G | 12 G |
| 11.8 G | 12 G |
如何对 coredump 文件进行在线压缩
如果需要对 OBServer 进程产生的 coredump 文件进行在线压缩,基本步骤如下:
配置 coredump 压缩脚本。
以 root 用户执行如下的命令:
cat >/usr/local/bin/core-compress.sh <<EOF #!/bin/bash gzip --fast - > "/data/1/core-\$1-\$2-\$3.gz" EOF chmod +x /usr/local/bin/core-compress.sh echo 'kernel.core_pattern=|/usr/local/bin/core-compress.sh %e %p %t' >> /etc/sysctl.conf sysctl -p检查当前 coredump 设置。
[root@observer1 ~]# cat /proc/sys/kernel/core_pattern |/usr/local/bin/core-compress.sh %e %p %t测试验证。
[root@observer1 ~]# date ; kill -SIGSEGV $(pidof observer) ; date等待 OBServer 进程 coredump 完成后:
[root@observer1 ~]# ls -ltrh /data/1/core* -rw-r--r-- 1 root root 502M 10月 15 13:45 /data/1/core-observer-2015983-1760507009.gz
通过对比测试发现:
不使用压缩时 core 文件大小:~ 12GB,OBServer 进程 dump 总耗时:~ 16s。
使用压缩时 core 文件大小:~ 502M,OBServer 进程 dump 总耗时:~ 1m38s。
压缩比例:~4%,但是 OBServer 进程 dump 的耗时也大大延长了(这意味着 ocp_monagent 守护进程重新拉起 OBServer 进程的时间点也被顺带往后推迟了),因此一般情况下不推荐在产生 coredump 文件的同时进行在线压缩!
警告
当产生 coredump 文件时,请勿同时进行在线压缩 core 文件操作。如果需要在线压缩 core,请联系 OceanBase 技术支持团队。
适用版本
OceanBase 数据库所有版本。