集群规模设置
本节是关于如何确定 Loki 集群基本资源需求的指南。
根据预期的摄入量,Loki 集群可分为三个层级。以下建议基于相关组件的 p90 资源利用率。每个标签页代表一个不同的层级。请将本文档作为粗略指南,以便在您的部署中指定 CPU 和内存请求。目前这仅针对 微服务/分布式 模式进行了说明。
查询资源需求会因使用模式和正确配置而差异很大。查询性能概述
- 经验法则是尽可能运行更小、更多的查询器。未优化的查询在所有层级中都很容易需要建议查询器资源的 10 倍。运行水平自动扩展是满足需求的最高效解决方案。
- 使用此博客文章来采用查询性能优化的最佳实践。
- Parallel-querier 和相关组件的初始规模可以与查询器相同,具体取决于使用了多少 Loki 规则。
- 大型 Loki 集群受益于基于磁盘的缓存解决方案 memcached-extstore。请参阅详细的博客文章,并在此处阅读有关memcached/NVM 缓存的更多信息。
- 如果您运行的集群每天处理的摄入量少于 30TB(约 1PB/月),我们不建议配置 memcached-extstore。额外的操作复杂性无法抵消节省的成本。
组件 | CPU 请求 | 内存请求 (Gi) | 基本副本数 | 总 CPU 请求 | 总内存请求 (Gi) |
---|---|---|---|---|---|
Ingester | 2 | 4 | 6 | 12 | 36 |
Distributor | 2 | 0.5 | 4 | 8 | 2 |
Index gateway | 0.5 | 2 | 4 | 2 | 8 |
Querier | 1 | 1 | 10 | 10 | 10 |
Query-frontend | 1 | 2 | 2 | 2 | 4 |
Query-scheduler | 1 | 0.5 | 2 | 2 | 1 |
Compactor | 2 | 10 | 1 (单例) | 2 | 10 |
组件 | CPU 请求 | 内存请求 (Gi) | 基本副本数 | 总 CPU 请求 | 总内存请求 (Gi) |
---|---|---|---|---|---|
Ingester | 2 | 6 | 90 | 180 | 540 |
Distributor | 2 | 1 | 40 | 80 | 40 |
Index gateway | 0.5 | 4 | 10 | 5 | 40 |
Querier | 1.5 | 2 | 100 | 150 | 200 |
Query-frontend | 1 | 2 | 8 | 8 | 16 |
Query-scheduler | 1 | 0.5 | 2 | 2 | 1 |
Compactor | 6 | 20 | 1 (单例) | 6 | 20 |
组件 | CPU 请求 | 内存请求 (Gi) | 基本副本数 | 总 CPU 请求 | 总内存请求 (Gi) |
---|---|---|---|---|---|
Ingester | 4 | 8 | 150 | 600 | 1200 |
Distributor | 2 | 1 | 100 | 200 | 100 |
Index gateway | 1 | 4 | 20 | 20 | 80 |
Querier | 1.5 | 3 | 250 | 375 | 750 |
Query-frontend | 1 | 4 | 16 | 16 | 64 |
Query-scheduler | 2 | 0.5 | 2 | 4 | 1 |
Compactor | 6 | 40 | 1 (单例) | 6 | 40 |
实例类型
这些是我们从各种云提供商建议的节点类型。请参阅提供商文档中的相关规格。
- 对于 AWS,适用于您所在区域的任何通用型机器,Intel 芯片家族为
M6
及以上,ARM 芯片家族为T2
及以上。 - 对于 GCP,适用于您所在区域的任何通用型机器,家族为
E2
及以上。 - 对于 memcached-extstore 节点,我们建议使用具有 NVMe 存储的存储优化实例,以便充分利用额外的磁盘空间。