转储的动作可以通过系统表进行查看。

    通过查看转储的时间点、转储的触发和转储的次数可以观察集群内存的使用情况,同时可以调整租户内存的大小,并配置转储次数进而满足不同的业务需求场景。

    查看转储的示例如下:

    • 系统租户从 RootService 角度查看最近 10 次的转储记录。

      1. obclient> SELECT * FROM __all_rootservice_event_history WHERE event LIKE '%minor%' ORDER BY gmt_create LIMIT 10;
    • 系统租户查看具体某台 OBServer 的转储情况。

      1. obclient> SELECT * FROM __all_server_event_history WHERE svr_ip='192.168.100.1' AND module IN ('freeze', 'minor_merge') ORDER BY gmt_create DESC LIMIT 10;
    • 系统租户查看转储后租户的 Active MemStore 是否释放,同时查看 freeze_cnt 的计数情况。

      1. obclient> SELECT * FROM __all_virtual_tenant_memstore_info;

      上述示例的返回结果说明如下表所示。

      字段

      说明

      tenant_id

      租户的 ID

      svr_ip

      租户所在服务器的 IP

      svr_port

      RPC 端口

      active_memstore_used

      租户在某台服务器上的活动 MemStore 的大小

      total_memstore_used

      租户在某台服务器上的总 MemStore 的使用大小

      major_freeze_trigger

      活动 MemStore 使用量触发转储或合并的阈值

      memstore_limit

      租户在某台服务器上的 Memstore 的上限

      freeze_cnt

      活动 Memstore 达到阈值触发转储的计数器

    其他说明:

    • __all_rootservice_event_history 表中保留 7 天内的数据;__all_server_event_history 表中保留 2 天内的数据。

    • 每次合并都需要先进行一次转储,因此在每天的合并 Duty Time 时间点(默认为凌晨 2 点)可以看到转储动作。

    • __all_virtual_tenant_memstore_info 表中 major_freeze_trigger 参数对应的是转储和合并的阈值。

      当参数 minor_freeze_times 的值为 0 时, 列 active_memstore_used 达到 major_freeze_trigger 所配置的阈值时触发合并。

      如果参数 minor_freeze_times 的值不为 0,则当列 active_memstore_used 达到 major_freeze_trigger 所配置的阈值时,触发转储还是合并主要取决于上次合并之后发生的转储次数 。

    • __all_virtual_tenant_memstore_info 中的 freeze_cnt 的统计数对应的是参数 minor_freeze_times 的值。

      freeze_cnt 计数达到 minor_freeze_times 所配置的阈值时,下次租户内存使用率达到阈值将触发合并而不是转储。

      手动触发的转储不会导致 freeze_cnt 的计数增加。合并会将 freeze_cnt 计数清零。