可靠的方法来检查热高速缓存中数据所占用的实际大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可靠的方法来检查热高速缓存中数据所占用的实际大小相关的知识,希望对你有一定的参考价值。

我有一张表,上面有1天的热缓存策略。并假设ADX群集的缓存利用率低于80%。考虑到这一点,哪种方法可以确切地知道表实际占用的缓存空间(TB)数量呢?我想出了以下两种方法,但是它们都返回明显不同的数字:-

.show table <TableName> extents hot | summarize sum(ExtentSize)/pow(1024,4)
.show table <TableName> extents | where MaxCreatedOn >= ago(1d) | summarize extent_size=sum(ExtentSize) | project size_in_TB=((extent_size)/pow(1024,4))

第二个命令返回的计数是第一个命令的10倍以上。有什么不同吗?

答案

您运行的两个命令都应具有相同的值,并假设:

  1. 您同时运行它们(或快速地一个接一个地运行)] >>
  2. [[有效
  3. 缓存策略确实是1天(您是否已证实确实如此?)]不管-获取该数据点的最有效方法是使用以下命令:

.show table TABLENAME details | project HotExtentSizeTb = HotExtentSize/exp2(40), CachingPolicy

以下是我的表的示例,该表的缓存策略为4天(在表级别设置),保留策略的软删除期为3650天:

// option 1 // -------- .show table yonis_table extents hot | summarize HotExtentSizeTb = sum(ExtentSize)/exp2(40) // returns: HotExtentSizeTb: 0.723723856871402 <--- // option 2: least efficient // ------------------------- .show table yonis_table extents | where MaxCreatedOn >= ago(4d) | summarize HotExtentSizeTb = sum(ExtentSize)/exp2(40) // returns: HotExtentSizeTb: 0.723723856871402 <--- // option 3: most efficient // ------------------------ .show table yonis_table details | project HotExtentSizeTb = HotExtentSize/exp2(40), CachingPolicy, RetentionPolicy // returns: HotExtentSizeTb: 0.723723856871402, <--- CachingPolicy: { "DataHotSpan": "4.00:00:00" }, RetentionPolicy: { "SoftDeletePeriod": "3650.00:00:00", "Recoverability": "Enabled" }

以上是关于可靠的方法来检查热高速缓存中数据所占用的实际大小的主要内容,如果未能解决你的问题,请参考以下文章

基于redis做缓存分页

如何从可动手做的构建中排除热公式解析器?

12代es缓存延迟

在设备设置中检查 Room 数据库的大小

可靠性设计

JVM —— Java 对象占用空间大小计算