学习 Druid(五):集群调优
2013 年 4 月 14 日
MiddleManager
TODO
Historical
堆内存
Historical 堆内存的使用:
- 部分未合并的 Segment 查询结果;
-
Lookup
映射; - 缓存。
堆内存公式:
(0.5GB * number of CPU cores) + (2 * total size of lookup maps) + druid.cache.sizeInBytes
配置项:
-
druid.cache.sizeInBytes
缓存大小。
堆外内存
Historical 堆外内存的使用:
- Processing buffer;
- GroupBy merging buffer。
堆外内存公式:
(druid.processing.numThreads + druid.processing.numMergeBuffers + 1) * druid.processing.buffer.sizeBytes
配置项:
-
druid.processing.buffer.sizeBytes
buffer 大小,合理的大小在 500MB 到 1GB 之间; -
druid.processing.numThreads
Processing 线程数,即可以处理的并发查询数; -
druid.processing.numMergeBuffers
GroupBy merging buffer 数,合理的大小约为druid.processing.numThreads
的四分之一。
Segment
配置项:
druid.server.maxSize druid.segmentCache.locations
通过优化 free system memory / druid.server.maxSize
比率,可以最大的利用内存中的 Segment 数据。
Broker
TODO