【问题标题】:row skew and memory skew values in memsqlmemsql 中的行偏斜和内存偏斜值
【发布时间】:2016-10-17 14:40:53
【问题描述】:

在注意到经过大量插入操作后,我们的集群在 2-3 个叶子上运行很热(我们有 30 个叶子,每个叶子有 32G 内存)后,我最终深入研究了数据倾斜。基本上我们的内存在那些导致集群阻塞的节点上几乎达到 100%。重新启动这些叶子并没有释放内存(在表内存中达到最大分配大小)。在那个阶段有什么帮助是为那 2-3 个叶子(它们是 aws 实例)分配更多内存。然而,这不是一个理想的方法 - 这是一个绝望的解决方法。奇怪的是,除了这 2-3 个叶子内存不足外,其他叶子的内存消耗大约为 20-30%。

检查https://docs.memsql.com/docs/data-skew 并运行这些查询,我注意到 row_skew 的所有值均 40% 。

所以我想知道是否有什么需要检查、改进、优化?

【问题讨论】:

    标签: singlestore


    【解决方案1】:

    低行偏斜但高内存偏斜可能是因为您具有可变大小的数据类型(例如 varchar 之类的字符串),并且由于某些原因存在偏斜,因为某些分区具有更多更大的字符串。

    首先,您可以查找哪些特定字段高度倾斜 - 可能类似于 select partition_id(), avg(length(s)) from t group by partition_id()。然后根据您的发现,您可能想查看数据是否存在意外问题,或者您是否需要更改分片键。

    【讨论】:

      【解决方案2】:

      检查内存使用率较高的节点上的孤立分区(SHOW CLUSTER STATUS 或 EXPLAIN CLEAR ORPHAN PARTITIONS)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-17
        • 2014-02-20
        • 2011-02-03
        • 2019-04-04
        • 1970-01-01
        • 1970-01-01
        • 2013-11-14
        • 1970-01-01
        相关资源
        最近更新 更多