【问题标题】:Memsql: why memory usage is so high?Memsql:为什么内存使用率这么高?
【发布时间】:2016-05-05 11:28:43
【问题描述】:

首先,请原谅我的英语不好。

我的测试环境:


是的,只有一位大师和一叶。我在叶子节点上设置了maximum_memory = 10G。

问题来了:表数据只用了334M内存,叶子节点却用了13.34G内存。这是为什么呢?

顺便说一下,我的使用场景就像“速度测试”,批量插入和批量删除。

非常感谢!

memsql

【问题讨论】:

    标签: singlestore


    【解决方案1】:

    如“内存”旁边的信息工具提示中所述,该数字包括 MemSQL 使用的缓存内存,该内存过去已分配但未被积极使用。这就是它比您当前的表大小大得多的最可能原因。

    要查看 MemSQL 使用内存的确切位置,请单击 Ops 中的节点并转到 MemSQL 节点的页面,那里有关于内存使用的更多详细信息。

    【讨论】:

    • 感谢您的回复,其实我遇到了“Linux Out of Memory Behavior”,即使设置了maximum_memory=10G,memsql仍然可以使用10G以上的内存,memsql进程会被杀死linux.我现在能做什么?
    • 几个问题:确保您在叶节点上设置了 maximum_memory - 您可以通过查看该节点上的“显示变量”来检查。此外,该节点上报告的内存使用情况是多少 - 您可以通过运行“显示状态扩展”或查看 Ops 中的节点来检查。
    • 1.我确定叶节点上的maximum_memory=10G。 2.我列出了一些状态:Alloc_table_memory=360.5 MB Alloc_table_metadata_cache=1296.9 MB Buffer_manager_memory=2259.0 MB Malloc_active_memory=16322.7 (+0.0) MB Malloc_cumulative_memory=2826581.1 (+2.5) MB 3.我运行了dmesg | grep -i "out of memory",发现linux已经杀死了memsql进程3次。内存不足:杀死进程18323(memsqld)得分966或牺牲孩子
    • 嗯,听起来问题可能是内存泄漏。或者,一种可能性——你打开了很多连接吗?
    • 您可以共享您的测试工作量吗?
    猜你喜欢
    • 2014-03-14
    • 2013-06-06
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    相关资源
    最近更新 更多