推荐一个好东西,诊断工具的obdiag的一键洞察,一条命令就搞定了,不用管OB的版本,不用记录SQL
文档:https://www.oceanbase.com/docs/common-obdiag-cn-1000000003242125
SELECT tenant_id, CTX_NAME, hold
FROM oceanbase.GV$OB_MEMORY
WHERE svr_ip = 'xx.xx.xx.xx'
AND svr_port = 2882
AND tenant_id = 1002
GROUP BY CTX_NAME;
select * from gv$ob_tenant_memory; --每个租户内存占用
select * from gv$ob_memory; --注意:4.0之后展示租户级别的内存模块统计信息
注意:sys租户能看到所有租户,包括500租户
如何可以看到 kv cache \ plan cache \sql area 等空间大小
这个是需要计算得出的。
SQL Work Area
工作区内存,是指 SQL 排序等阻塞性算子使用的内存,通过租户系统变量 ob_sql_work_area_percentage 控制,默认值为 5%,即 工作区内存 = 租户内存 * ob_sql_work_area_percentage(默认 5%) 。
如果请求并发量较大,且每个请求占用的工作区内存比较多,可能出现工作区内存不足的报错,经常出现的场景有 union 、sort 、group by 等。上述问题如果出现,可以通过适当调大系统变量ob_sql_work_area_percentage来进行规避。
KVCache
可动态伸缩的 KVCache 会尽量使用除去不可动态伸缩后租户的全部内存,当租户内存满时,会优先从 KVCache 中淘汰未被引用的内存来使用。KVCache主要用于缓存热点数据(Row Cache)、表结构元数据(Schema Cache)等内容,属于共享资源池的一部分。
KVCache 一般不需要配置,特殊场景下可以通过参数控制各种 Cache 的优先级,优先级高的 Cache 比优先级低的 Cache 更容易被保留在 Cache 中。
收藏
查看动态性能视图字典
查看内存相关视图
貌似得到的值不是很准确啊。不能严格控制
阿尔泰山
学习了,谢谢官方。
期待更多分享
宝贵的经验分享,谢谢!
宝贵的经验分享,谢谢!
感谢作者的整理和分享
学习了
赞一个!
写得很详细


