2016-02-05 2 views
4

Я запускаю apache drill 1.0 (а затем и 1.4) локально на машине ubuntu, которая имеет 16 ГБ оперативной памяти. Когда я работаю с очень большой вкладки файл с разделителями (52 миллионов строк, 7GB), а также выполнятьApache Drill не использует max RAM

Select distinct columns[0] from `table.tsv` 

, производительность, кажется, не улучшается вообще во второй раз тот же запрос побежал (и занял 53 секунд). Обычно второй раз, когда выполнялся тот же запрос, он занимает меньше половины времени по сравнению с первым запросом. Похоже, что Drill не использует всю выделенную память.

Мой конф/drill-env.sh файл выглядит следующим образом:

DRILL_MAX_DIRECT_MEMORY="14G" 
DRILL_HEAP="14G" 

export DRILL_JAVA_OPTS="-Xms$DRILL_HEAP -Xmx$DRILL_HEAP -XX:MaxDirectMemorySize=$DRILL_MAX_DIRECT_MEMORY -XX:MaxPermSize=14G -XX:ReservedCodeCacheSize=1G -Ddrill.exec.enable-epoll=true" 

Я также сделал это в сверлом

alter system set `planner.memory.max_query_memory_per_node`=12884901888 

Однако, когда я проверить использование памяти с помощью SMEM, это только с помощью около 5 ГБ оперативной памяти.

Если я сократить размер таблицы в только 1 миллион подряда, я могу увидеть первый запрос завершен в 3.6seconds и во второй раз тот же самый запрос выбежал, потребовалось всего 1,8 секунды

Что мне не хватает?

ответ

0

У вас только 16 ГБ ОЗУ, для Drill невозможно использовать 14 ГБ для кучи и 14 ГБ для прямой памяти. Эти типы памяти не перекрываются.

Я предлагаю вам оставить 2 ГБ для вашей ОС, поэтому у вас есть 14 ГБ влево, назначьте 12 ГБ для прямой памяти и 2 ГБ для кучи.

Вы найдете опцию с именем planner.width.max_per_node со значением 70% от количества ваших сердечников. Увеличьте это до нужной суммы.

Возможно, вы захотите прочитать the answers for this question.

0

я могу получить запрос, чтобы использовать всю доступную память (как определено по set planner.memory.max_query_memory_per_node = n) является set planner.memory.min_memory_per_buffered_op = n (такой же, как planner.memory.max_query_memory_per_node.

Я не мог найти какой-либо документации на съемочной площадке planner.memory.min_memory_per_buffered_op, и я не уверен, если это произойдет.

+0

Это не ответит на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажав [Ask Question] (https://stackoverflow.com)./questions/ask). Вы также можете [добавить баунти] (https://stackoverflow.com/help/privileges/set-bounties), чтобы нарисовать mor Обратите внимание на этот вопрос, как только у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation). - [Из обзора] (/ review/low-quality-posts/18547918) –

Смежные вопросы