连接observer出现4013:No memory or reach tenant memory limit

【 使用环境 】生产环境 or 测试环境
测试环境
【 OB or 其他组件 】
OB
【 使用版本 】
4.1.0
【问题描述】清晰明确描述问题
使用obclient命令行连接observer出现4013:No memory or reach tenant memory limit异常。
【复现路径】问题出现前后相关操作
出现该问题前,在对hbaseAPI进行压测,然后就无法连接上observer,并且报错4013。论文里的解决方案是增加ob_sql_work_area_percentage变量,但是我连不上observer,没办法修改。

麻烦提供下observer进程 还有无法连接的信息。
还有内存是多大的呢?看下机器内存和配置文件里设置的内存。

仅凭一个 4013 内存报错,别人很难提供帮助。
建议:
1。列举你的集群服务器资源信息(数量、cpu、内存、磁盘)。
2。列举你的测试方法细节。
3。了解一些 OB 内存模块原理以及报错常见原因。 可以参考:https://mp.weixin.qq.com/s/rt7oZ68d4tvu0G1i9zSf7A
4. 既然是测试环境,连不上了,那就重启 OB 节点。不过改什么参数还取决于你的测试方法和报错原因。不能简单按论文里说的 修改那个变量。

我重启了集群后,可以访问数据库了。但是集群部署在内网,一些信息没法粘贴过来,以下是我摘取的以下信息。

1、 配置
oceanbase-ce配置文件中memory相关的配置有:
ocp_meta_tenant_memory_size: 2G
memory_limit:21G
system_memory: 5G
机器当前总内存62G,可用内存28G
ob_sql_work_area_percentage: 5

2、observer.log
该文件中打印了大量日志,我看重复出现的有下面两条:
WDIAG print_tenant_memblock_info(ob_kvcache_store.cpp:784)[2610542] [LSMetaTb1Up0] [T1]……[errorcode=0][CACHE] len: 3213 tenant sync wash failed, cache memblock info:

ERROR issue_dba_error [errorcode=-4388] Unexpected internal error happen, please checout the internal errcode(errorcode=-4013, file=“ob_srv_xlator.cpp”, line_no=427, info="failed to allocate memory for ObMPConnect)

另外我是直接在系统租户中进行数据存取,不知道这个会不会导致oceanbase运行性能变差

SELECT * FROM DBA_OB_TENANTS;  看看信息

我用的是oceanbase提供的obkv功能。

测试方法是:写一个根据rowKey查询数据的接口,里面调用OHTable的get方法。然后大量请求该接口,查询参数为固定的rowkey。

总共测试两次,第一次并发数为10,每秒请求数为500,持续10s;第二次并发数、持续时间不变,每秒请求为32。

建议不要直接用系统租户进行测试

这个环境内存配置够大。问题应该就是出在直接使用 系统租户 SYS 上了。SYS 租户资源默认也是固定的,是给管理用的,不要用来读写业务数据。
用集群剩余的资源创建一个业务租户,在业务租户下测试看看。