前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云顾问-混沌】Pod/Node CPU 故障注入

【云顾问-混沌】Pod/Node CPU 故障注入

原创
作者头像
冷淡然
修改2024-03-15 12:04:47
2290
修改2024-03-15 12:04:47
举报

1. 介绍

在复杂的分布式系统中,为了验证服务质量、监控告警、流量调度、弹性伸缩等能力,我们需要模拟不同的故障场景。本文将介绍如何使用混沌工具对 Pod/Node 进行 CPU 负载故障注入,以达到指定的 CPU 负载百分比。

2. 参数

在进行 CPU 负载故障注入时,我们可以通过以下参数来控制:

  • nice:指定 CPU 负载进程的 nice 值(静态优先级),取值范围为[-20, 19]。仅当 cpuPercent 值为 100% 时生效。此参数为可选,>= v1.3.7 版本支持。
  • duration:自动恢复时长,到达时间后会自动销毁故障。单位是秒。通用参数,默认值为 60。
  • nice:指定 CPU 负载进程的 nice 值(静态优先级),取值范围为[-20, 19]。仅当 cpuPercent 值为 100% 时生效。此参数为可选。
  • duration:自动恢复时长,到达时间后会自动销毁故障。单位是秒。通用参数,默认值为 60。

3. 案例

3.1 使所有 CPU 核负载达到 80%
代码语言:bash
复制
./chaos-executor attack --target cpu --action burn --flags "percent=80;duration=100"
3.2 使指定的 CPU 核(如 1,3)负载达到 100%
代码语言:bash
复制
./chaos-executor attack --target cpu --action burn --flags "core-list=1,3;duration=100"

4. 实现原理

混沌工具在进行 CPU 负载故障注入时,主要通过以下方式实现:

  1. 启动 chaos_burncpu 进程,空跑 for 循环来消耗 CPU 时间片。
  2. 配置参数 core-list 时,对每个核绑定一个进程消耗 CPU 时间片。
  3. nice 参数(通过 man nice 了解 nice 意义)仅在 percent 参数设置为 100% 时生效,用于修改 chaos_burncpu 的调度优先级。当设置为负数时,表示会提升 chaos_burncpu 的调度优先级,从而实现模拟 CPU 抢占功能。

5. 验证故障生效

我们可以通过以下命令查看 CPU 负载情况,以验证故障是否生效:

  • 物理机:通过 top 命令查看 CPU 负载情况。CPU 使用率 = 100 - CPU 空闲比例(idle)。
  • 容器

docker stats:查看容器 CPU 使用情况。

crictl stats:查看容器 CPU 使用情况。

kubectl top:查看容器 CPU 使用情况。

通过以上方法,我们可以轻松地对 Pod/Node 进行 CPU 负载故障注入,从而验证系统在不同负载下的表现,以及监控告警、流量调度、弹性伸缩等能力。

使用腾讯云混沌演练平台实施 CPU 高负载。故障实现原理是预先在混沌演练平台探针管理处安装腾讯自研 Agent 探针。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 介绍
  • 2. 参数
  • 3. 案例
    • 3.1 使所有 CPU 核负载达到 80%
      • 3.2 使指定的 CPU 核(如 1,3)负载达到 100%
      • 4. 实现原理
      • 5. 验证故障生效
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档