From c66979eafb754bffe12e6e8a18c9c16a5734ceb9 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Tue, 29 Apr 2014 08:13:26 +0400 Subject: [PATCH] dbms: addition to prev. revision [#METR-10988]. --- dbms/include/DB/Common/HashTable/HashTableAllocator.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dbms/include/DB/Common/HashTable/HashTableAllocator.h b/dbms/include/DB/Common/HashTable/HashTableAllocator.h index ab6dc5890d9..9d7cfcce1b8 100644 --- a/dbms/include/DB/Common/HashTable/HashTableAllocator.h +++ b/dbms/include/DB/Common/HashTable/HashTableAllocator.h @@ -18,14 +18,14 @@ private: * даже в случае достаточно больших кусков памяти. * Хотя это позволяет увеличить производительность и уменьшить потребление памяти во время realloc-а. * Чтобы это исправить, делаем mremap самостоятельно, если кусок памяти достаточно большой. - * Порог (16 МБ) выбран достаточно большим, так как изменение адресного пространства + * Порог (64 МБ) выбран достаточно большим, так как изменение адресного пространства * довольно сильно тормозит, особенно в случае наличия большого количества потоков. * Рассчитываем, что набор операций mmap/что-то сделать/mremap может выполняться всего лишь около 1000 раз в секунду. * * PS. Также это требуется, потому что tcmalloc не может выделить кусок памяти больше 16 GB. * NOTE Можно попробовать MAP_HUGETLB, но придётся самостоятельно управлять количеством доступных страниц. */ - static constexpr size_t MMAP_THRESHOLD = 16 * (1 << 20); + static constexpr size_t MMAP_THRESHOLD = 64 * (1 << 20); public: /// Выделить кусок памяти и заполнить его нулями.