首页/云/可观测性速查/Loki 写入与查询限额
日志平台52 条

Loki 写入与查询限额

限额保护集群不被单租户拖垮:写入速率、突发、流数量、查询序列数与查询时长上限都在 limits_config;命中限额会收到明确报错。

可观测性速查云更新于 2026-10-13

Loki 限额是什么

limits_config 是 Loki 的限额配置,用来保护集群不被单个租户拖垮:写入速率与突发、每用户流数量、查询可返回的序列数、单次查询的时间跨度与返回条数都在这里设置,命中限额时客户端会收到明确报错。限额需要与标签设计、采集频率、查询习惯一起调,先定位是哪类请求异常,再决定放宽哪一项。

基本信息

配置位置Loki 配置文件的 limits_config 段
常用项ingestion_rate_mb、ingestion_burst_size_mb、max_streams_per_user、max_query_series、max_query_length
生效范围可按租户单独覆盖
适用版本Loki 2.x 及以上
权限要求配置文件修改与服务重启

典型使用场景

  • 多租户保护:为团队划分独立租户,避免某一方写入洪峰影响其他人
  • 标签治理:用流数量限额倒逼高基数标签整改
  • 查询保护:限制单次查询可返回的序列数与时间跨度,防止大查询拖垮查询器
  • 容量对齐:把写入限额与存储层实际吞吐对齐,将压力挡在入口
  • 成本控制:约束日志量增长节奏,配合保留策略一起控制开销

排查要点

  • 遇到限流报错先确认是哪个租户、哪条流触发,再决定放宽还是治理
  • 并发查询报错通常来自查询侧循环请求,先看发起方而不是直接调参
  • 流数量超限的根因基本都是标签里带了请求标识或时间戳这类高基数值
  • 放宽限额前先确认存储层还有余量,否则只是把瓶颈后移
  • 每次限额调整都留记录,复盘时才知道参数何时被谁改过

常用限额

常用限额
limits_config:
  ingestion_rate_mb: 8            # 单租户写入速率上限
  ingestion_burst_size_mb: 16     # 突发缓冲
  max_streams_per_user: 10000     # 流数量上限,与标签设计直接相关
  max_query_series: 500           # 单次查询可返回的序列数
  max_query_length: 721h          # 单次查询最大时间跨度
  max_entries_limit_per_query: 5000

报错与处理方向

报错含义处理方向
per stream rate limit exceeded某条流写入过快拆分流或降低采集频率
too many outstanding requests查询并发超限收敛并发或调整查询并行度
max streams per user流数量超限治理高基数标签
query too long时间跨度超限缩短查询范围或改用预聚合
HTTP 429请求被限流先按租户定位来源再调参
限额调大之前先定位异常请求来源,盲目放宽只会把压力从入口转移到存储层,故障表现会从明确报错变成查询集体变慢。

易错点

  • 限额调大前先定位是哪类请求异常,盲目放宽会把压力转移给存储层
  • 流数量限额与标签设计直接相关,先治理高基数标签再谈扩容
  • 只放宽写入限额不放宽查询限额,会出现数据进得来却查不动的局面
  • 限额调整不做记录,复盘时无法判断某个报错源于哪次配置变更

数据来源与参考

  • Grafana 官方文档 · Loki limits configuration
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌