我最近在我的Oracle Enterprise 6 Linux服务器上安装了monetdb"OCT 2014-SP1"版本。
服务器配置 -
8 个中央处理器内核64 GB 内存
我已经加载了一个包含 70 列的数据集,其中包含 15 百万行。
我已经启动了mserver5,如下所示 -
mserver5 --debug=10 --set gdk_nr_threads=8 --dbpath=/data/monetdb/testdb --set mapi_open=true --set mapi_port=54321 --set merovingian_uri=mapi:monetdb://localhost:54321/testdb --set mapi_usock=/data/monetdb/testdb/.mapi.sock --set monet_vault_key=/data/monetdb/testdb/.vaultkey --set sql_optimizer=default_pipe --set max_clients=64
现在我运行了一个查询,如下所示 -
select product_type,COUNT(DISTINCT sales_document),sum(ord_qty) FROM bookings where ord_entry_date between '2014-04-01' and '2014-10-01' group by product_type;
此查询大约花费了 90 秒。所以我开始断层扫描并检查了绘制的图形......这显示并行度使用率仅为 39.9%,并且仅利用了 1 个线程,步骤中的时间最长 - group.subgroupdone 几乎为 98%。
我的问题是,即使我已经以 gdk_nr_threads=8 启动服务器,那么为什么它只使用单线程。
更多信息 --
mserver5 --version
MonetDB 5 服务器 v11.19.7 "Oct2014-SP1"(64 位、64 位 oid)版权所有 (c) 1993-2008 年 7 月 CWI版权所有 (c) 2008-2014 年 8 月 MonetDB B.V.,保留所有权利访问 http://www.monetdb.org/了解更多信息
找到 63.0GiB 可用内存,8 个可用 CPU 内核
图书馆:
libpcre: 7.8 2008-09-05 (编译与 7.8)
openssl: OpenSSL 1.0.1e 2013年2月11日(与OpenSSL 1.0.1e-fips 2013年2月11日编译)
libxml2:2.7.6(使用 2.7.6 编译)
编译者: root@localhost (x86_64-unknown-linux-gnu)
编译: gcc -O3 -fomit-frame-pointer -pipe -D_FORTIFY_SOURCE=2
链接 :/usr/bin/ld -m elf_x86_64
任何指示??
使用的并行性取决于计划本身中的阻塞运算符。