tablet上限问题

场景1 :

_max_tablet_cnt_per_gb 为默认 20000

业务租户 1 unit: 2C/2G 时, tablet 上限 LIMIT_VALUE 20000
增加1G 1 unit: 2C/3G 时, tablet 上限 LIMIT_VALUE 40000

是因为下面这个原因么?( 租户规格大于等于 2G 时,Meta 租户的内存规格固定为 1G,剩余资源给用户租户。)

场景2:

业务租户1002 _max_tablet_cnt_per_gb 调整为 48000

image

业务租户 调整为 1 unit: 8C/19G , tablet 上限 LIMIT_VALUE 350208

这是为什么 即使分给meta租户 10% 还剩 17.1G 上限不该是 17.1* 48000吗?

@论坛小助手

1 个赞

用户问题: “在 OceanBase 中,当业务租户的 _max_tablet_cnt_per_gb 设置为不同值时,tablet 上限计算是否正确?具体表现为在 1 unit: 2C/2G 时,tablet 上限为 20000;增加 1G 后,tablet 上限为 40000。而在 1 unit: 8C/19G 时,_max_tablet_cnt_per_gb 调整为 48000,但 tablet 上限仅为 350208,而不是预期的 17.1 * 48000。这是什么原因导致的?”

推荐使用 obdiag 工具进行日志采集,这可以帮助我们进一步了解配置项对 tablet 上限计算的影响,并提供必要的日志来辅助问题定位。
日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base

麻烦您提供一些信息以便我们更好地帮助您:

  1. 当前业务租户的具体配置,特别是与资源相关的配置。
  2. 是否有其他配置项可能影响了 tablet 的上限计算?
  3. 在 1 unit: 8C/19G 的情况下,_max_tablet_cnt_per_gb 的具体配置步骤和时间点是什么?
  4. 能否提供一些关于 tablet 分配和使用情况的统计信息?
  5. 在其他租户中是否存在相同或类似的现象?

附上敏捷诊断工具 obdiag 使用帮助链接


[root@service8 ~]# obd obdiag gather log myob  --since=30m --scope observer --grep STORAGE
Open ssh connection ok
obdiag version: 3.4.0
gather_log start ...
gather log from_time: 2025-09-29 16:47:45, to_time: 2025-09-29 17:18:45
gather start ok
+------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                  Gather observer Log Summary on 2025-09-29 17:17:53                                                  |
+-------+---------+---------+--------------------------------------------------------------------------------------------------------------------------+
|  Node |  Status |   Size  |                                                           info                                                           |
+-------+---------+---------+--------------------------------------------------------------------------------------------------------------------------+
| local | Success | 33.135M | file save in ./obdiag_gather_pack_20250929171745/observer_log_local_20250929164745_20250929171845_834818_pid_3187.tar.gz |
+-------+---------+---------+--------------------------------------------------------------------------------------------------------------------------+

For result details, please run cmd ' cat ./obdiag_gather_pack_20250929171745/result_summary.txt '

Trace ID: 28e4e306-9d15-11f0-af1b-bc2411b58fe0
If you want to view detailed obdiag logs, please run: /root/.obd/repository/oceanbase-diagnostic-tool/3.4.0/c1a7d5038425acc9324b1716da1abca94b7d68d7/obdiag display-trace 28e4e306-9d15-11f0-af1b-bc2411b58fe0

obdiag latest version is 3.7.0, current version is 3.4.0, please update obdiag to the latest version

See https://www.oceanbase.com/product/ob-deployer/error-codes .
Trace ID: 2832f18c-9d15-11f0-a08c-bc2411b58fe0
If you want to view detailed obd logs, please run: obd display-trace 2832f18c-9d15-11f0-a08c-bc2411b58fe0
[root@service8 ~]# 


@论坛小助手

您使用了 obd obdiag 工具收集了指定时间段内的日志,具体命令为 obd obdiag gather log myob --since=30m --scope observer --grep STORAGE。从输出中可以看到,日志收集成功,文件大小为 33.135M,保存在 ./obdiag_gather_pack_20250929171745/observer_log_local_20250929164745_20250929171845_834818_pid_3187.tar.gz。同时,系统提示您 obdiag 的最新版本是 3.7.0,而当前使用的版本是 3.4.0,建议更新到最新版本。具体的日志详情可以通过命令 cat ./obdiag_gather_pack_20250929171745/result_summary.txt 查看。

具体信息可参考以下文档:

  1. ODP SQL 路由原理

这个上限是啥意思,没太明白

tablet https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013135#13-title-查看租户的逻辑资源使用情况及限制

快来解决啊 @论坛小助手

根据提供的信息,场景1符合文档中提到的规则,Meta租户固定占用1G,剩余资源给用户租户。场景2中,实际观察到的tablet上限350208低于预期的864000,可能是因为存在其他限制或配置影响,如tablet_size配置或其他系统变量。建议检查tablet_size配置、max_partition_num限制以及其他系统变量。

更多信息请查看:

  1. 租户内部内存管理
  2. 使用限制
  3. tablet_size

理论是用户内存* _max_tablet_cnt_per_gb

内部使用ob421版本测试了下,20G租户内存,创建60W个tablet没问题,需要确认下你的每个节点用户内存是否都满足,是否有资源不一致的情况,ob版本信息等。

查询每个租户资源信息


select a.zone,a.svr_ip,b.tenant_name,b.tenant_type, 
       a.max_cpu, a.min_cpu,
       round(a.memory_size/1024/1024/1024,2) memory_size_gb, 
       round(a.log_disk_size/1024/1024/1024,2) log_disk_size,
       round(a.log_disk_in_use/1024/1024/1024,2) log_disk_in_use,
       round(a.data_disk_in_use/1024/1024/1024,2) data_disk_in_use
  from oceanbase.gv$ob_units a join oceanbase.dba_ob_tenants b on a.tenant_id=b.tenant_id 
  order by b.tenant_name;

结果集
1.txt (474 字节)

5.7.25-OceanBase_CE-v4.3.5.3 版本不行吗 20g 创建60w是 调整 _max_tablet_cnt_per_gb= 3w吗 我这边调的4.8w 19G 只有 350208

OB_TENANT_RESOURCE_LIMIT_DETAIL 这表的 configuration 是对的
2.txt (792 字节)