obproxy开机自启成功,中途宕掉后手动启动失败报错:Segmentation fault

【产品名称】oceanbase–obproxy

【产品版本】1.9.1.2

【问题描述】obproxy开机自启成功,正常使用过程中,drop tenant xxx force方式删除了一个租户,过了一段时间后,发现连接失败,检查后发现obproxy进程及守护进程均不存在,尝试手动启动守护进程成功,obproxy未能被守护进程拉起,手动启动obproxy失败报错:Segmentation fault,一段时间后,守护进程自动关闭。

1.当前部署架构

主机几台?

每台部署情况:

CPU: 几个

Memory:多少G,从free -h来看,当前主机内存较为紧张

observer几个

obproxy几个


2.查看每个observer内存

show parameters like 'memory_limit';

1.这是我的测试机,observer分配的是4C16G,部署的是1-1-1模式,observer和obproxy分别3个。

2.内存

MySQL [oceanbase]> show parameters like 'memory_limit';

+-------+----------+---------------+----------+--------------+-----------+-------+-------------------------------------------------------------------------------------+----------+---------+---------+-------------------+

| zone | svrtype | svrip    | svrport | name     | datatype | value | info                                        | section | scope  | source | edit_level    |

+-------+----------+---------------+----------+--------------+-----------+-------+-------------------------------------------------------------------------------------+----------+---------+---------+-------------------+

| zone1 | observer | 192.168.8.211 |   2882 | memorylimit | NULL   | 15G  | the size of the memory reserved for internal use(for testing purpose). Range: [0M,) | OBSERVER | CLUSTER | DEFAULT | DYNAMICEFFECTIVE |

| zone2 | observer | 192.168.8.212 |   2882 | memorylimit | NULL   | 15G  | the size of the memory reserved for internal use(for testing purpose). Range: [0M,) | OBSERVER | CLUSTER | DEFAULT | DYNAMICEFFECTIVE |

+-------+----------+---------------+----------+--------------+-----------+-------+-------------------------------------------------------------------------------------+----------+---------+---------+-------------------+


由于需要测试,已通过重启OS解决问题,希望确认一下是什么原因引起的这个情况。

到 obproxy的安装目录下,有个 log 目录。里面有 obproxy.进程id.log 文件。

上传一下那个log 文件看看。


环境已经破坏了,暂时未能复现。

从当前资源来看:

主机4C16G,observer分配内存15G,obproxy占用约内存1-2G,系统一般建议保留至少10%约1.6G内存,系统运行一段时间,存在内存争用问题。

验证方法:

observer或obproxy异常时,df -h查看avalible,当值为数百M时,说明3者可能存在内存争用,此时进一步查看异常的observer或obproxy日志,是否有内存不足告警。