我有一个节点MemSQL安装,其中有一个主聚合器和两个叶子(都在一个盒子上)。该机器有2核,16 7Gb内存,MemSQL列存储数据为7GB(来自21 MemSQL)。当对数据运行查询时,内存使用量上限为2150 on (11 on空闲)。我已经将这两个叶配置为在两个节点的maximum_memory文件中都有memsql.cnf = 7000 (memsql-optimize类似)。在查询执行期间,主聚合器位于100%的CPU上,剩下的CPU为0-8%。
这似乎并不是对系统资源的有效利用,但我不知道我能做些什么来配置系统或MemSQL,以更有效地利用CPU或内存。任何帮助都将不胜感激!
发布于 2016-12-12 17:09:22
我的数据库来自当前memsql安装(可能是旧的集群配置)以外的其他地方,尽管机器上只有一个memsql集群。查看Web中的数据库部分时,没有显示任何数据库/表,但是我的查询获得了预期的答案。
从CSV删除数据库/重新加载成功地纠正了这种情况。所有核心线程现在都在查询期间使用。
发布于 2016-12-09 22:09:06
如果在查询执行期间,您的机器是100%的cpu (在所有核上),那么它是哪个MemSQL节点并不重要,您的工作负载吞吐量仍然是cpu上的瓶颈。但是,对于大多数查询,您不会期望大多数cpu使用在聚合器上,因此您可能需要查看查询的解释或概要文件。
Columnstore数据作为OS文件缓存的一部分缓存在内存中--它不算为MemSQL保留的内存,这就是为什么您的内存使用量小于列存储数据的大小。
https://stackoverflow.com/questions/41069418
复制相似问题