惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Project Zero
Project Zero
GbyAI
GbyAI
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
小众软件
小众软件
The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
IT之家
IT之家
F
Fortinet All Blogs
博客园 - 【当耐特】
H
Hackread – Cybersecurity News, Data Breaches, AI and More
P
Proofpoint News Feed
Schneier on Security
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy
O
OpenAI News
V
V2EX
博客园 - 三生石上(FineUI控件)
AI
AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Stack Overflow Blog
Stack Overflow Blog
P
Privacy International News Feed
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
H
Help Net Security
L
LINUX DO - 最新话题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tenable Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cisco Talos Blog
Cisco Talos Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 叶小钗
V
Vulnerabilities – Threatpost
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Hacker News: Ask HN
Hacker News: Ask HN
S
Security @ Cisco Blogs
S
Securelist
T
The Blog of Author Tim Ferriss
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
雷峰网
雷峰网
V2EX - 技术
V2EX - 技术

博客园 - 卡米i

【Docker】Used RSS Memory和Cached Memory ADTK指令解析之SSR(Special Service Request) 1A/1B/1E/1H... 什么是ADTK? 世界各国航司二字码 共享航班 行组 经停和中转的区别 EMD单号 OTA机票保险的相关角色 PNR/航司大编/小编 PNR/IATA二字码&三字码/票证代码 AirPlus和UATP的区别 UATP环球航空旅行计划 行李代转运 再说航段之Sector和Segment 联程机票 机票 PU(Pricing Unit,票价计算单元) 捆绑值机 瑞安航空 (Ryanair) 介绍 机票-取消留用 一个运价如何拆成 多个品牌 SKU 运价/价格/SKU的区别 运价 经停VS中转 共享航班(Code Share) 国内机场三字码 欧洲航司二字码 中国航司二字码 航变 行李直挂 UATP介绍 1航班N价格 航班运价 机票管控颗粒度 舱等和子舱位 Itinerary(行程单) TicketSignCode(出票标识代码) ETERM介绍 Itinerary和segment对比 Itinerary和segment 舱等&舱位 航程 航段 票号 票台 maven查看某个artifact都被哪些地方依赖
docker容器k8s之CPU节流控制指标:ThrottleCount/ThrottleTime
卡米i · 2026-07-07 · via 博客园 - 卡米i

在 Docker 容器及 Kubernetes 环境中,CPU 资源限制(通常通过 CFS Quota 实现)是保障多租户资源隔离的核心机制。理解 CPU Throttle Time 和 CPU Throttle Count 对于排查业务响应延迟、评估容器资源规格是否合理至关重要。

以下是这两个指标的详细介绍:

1. 核心背景:CFS Bandwidth Control

在 Linux 中,容器的 CPU 限制通过 CFS (Completely Fair Scheduler) 配额机制实现。你通常会在 Docker 中设置 --cpus=1 或在 K8s 中设置 resources.limits.cpu=1,这实际上配置了两个内核参数:

  • cpu.cfs_period_us: 周期长度(默认为 100ms,即 100,000 微秒)。
  • cpu.cfs_quota_us: 在一个周期内容器允许使用的 CPU 时间。

如果一个容器在 100ms 的周期内耗尽了它的配额,内核就会强制将该容器的所有进程挂起(暂停运行),直到下一个周期开始才能继续执行。这种“强制挂起”的行为就是 CPU Throttling(CPU 节流)。


2. CPU Throttle Count

  • 定义:指容器在运行期间,被内核触发节流(限制执行)的次数。
  • 作用:
    • 判定频繁性:该指标反映了容器被强制挂起的频率。如果该数值在短时间内快速增加,说明容器的 CPU 使用极其不稳定,频繁触碰上限。
    • 定性分析:它是一个“计数器”,用来告诉运维人员“发生了多少次中断”。它不能直接衡量由于节流导致的性能损失程度,只能反映节流发生的频率。

3. CPU Throttle Time (也称为 nr_throttled_time 或 throttled_usec)

  • 定义:指容器内所有进程由于 CPU 节流而累计被挂起的总时长(通常单位为微秒或纳秒)。
  • 作用:
    • 量化影响:这是衡量性能损耗最关键的指标。如果一个业务接口响应变慢,对比其 Throttle Time 的增长曲线,可以精准判断延迟是否由 CPU 限制导致。
    • 计算性能损失比:通过 (Throttle Time / 采样间隔时间),可以计算出容器因节流损失的有效计算能力比例。
    • 评估资源容量:如果 Throttle Time 持续增长,说明当前的 CPU Limit 设置过小,无法支撑业务的正常负载,需要考虑增加资源配额或优化代码逻辑。

4. 运维监控中的实际应用对比

指标维度运维价值
Throttle Count 频率 了解容器“被按住”了多少次,监控告警的触发阈值
Throttle Time 时长 了解容器“损失了多少性能”,用于评估业务受损程度

典型场景:

假设你的应用是一个实时性要求极高的 API 服务:

  1. 监控到 Count 增加,但 Time 不怎么动:说明节流发生的时间很短,对业务影响可能微乎其微。
  2. 监控到 Time 显著增加:说明业务进程被“冻结”的时间太长,必然会导致请求排队、接口超时,这时候必须扩容 CPU 配额。

运维建议

  • 监控侧:不要只盯着 Throttle Count,一定要监控 rate(container_cpu_cfs_throttled_seconds_total[1m])(即每秒节流时长),这是判断业务是否因为 CPU 资源不足导致卡顿的最直接证据。
  • 优化思路:
    • 扩容:如果 Throttle Time 长期增长且伴随业务延迟,直接调大 CPU Limit。
    • 代码分析:如果业务流量未增加但节流激增,排查是否有死循环、高 CPU 密集型的后台任务,或者考虑是否需要将这些任务拆分到不同的容器中。
    • 调整参数:在极少数对实时性要求极高的场景下,运维可能会调大 cfs_period_us 的值(虽然不推荐),以减少高频率中断对 CPU 缓存友好度的破坏。