基于docker一键部署 x86的cpu_mem_hog 用于生成CPU和内存负载,用于服务器cpu和内存使用不达标的

  1. 拉取镜像
bash 复制代码
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/cpu_mem_hog:latest

cpu_mem_hog 镜像,用于生成CPU和内存负载。

bash 复制代码
docker run -d \
  --privileged=true \
  --name cpu-mem-test \
  --restart unless-stopped \
  --cpus 4.0 \            
  --memory 8g \
  -e CPU_CORES=4 \
  -e MEMORY_GB=6 \
registry.cn-hangzhou.aliyuncs.com/qiluo-images/cpu_mem_hog:latest

命令说明:

bash 复制代码
docker run -d \
  --privileged=true \            # 赋予容器特权模式
  --name cpu-mem-test \          # 容器名称
  --restart unless-stopped \     # 重启策略
  --cpus 4.0 \                  # 限制使用4个CPU核心
  --memory 8g \                 # 限制使用8GB内存
  -e CPU_CORES=4 \              # 环境变量:使用4个CPU核心
  -e MEMORY_GB=6 \              # 环境变量:分配6GB内存
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/cpu_mem_hog:latest

参数说明

容器配置参数

--privileged=true:容器以特权模式运行,可以访问主机设备

--name cpu-mem-test:指定容器名称便于管理

--restart unless-stopped:除非手动停止,否则自动重启

--cpus 4.0:限制容器最多使用4个CPU核心

--memory 8g:限制容器最多使用8GB内存

环境变量

CPU_CORES=4:告诉测试程序使用4个CPU核心进行压力测试

MEMORY_GB=6:告诉测试程序分配6GB内存进行测试

功能用途

这个容器主要用于:

系统压力测试:模拟高CPU和内存使用场景

资源限制验证:测试Docker资源限制是否生效

监控系统测试:验证监控告警系统在资源紧张时的表现

容器编排测试:测试K8s或其他编排系统的资源调度能力

使用场景

  1. 开发测试
bash 复制代码
# 快速创建一个测试环境
docker run -d --cpus 2 --memory 4g -e CPU_CORES=2 -e MEMORY_GB=3 ...
  1. 监控验证
bash 复制代码
# 测试监控系统能否正确捕获资源异常
docker run -d --cpus 1 --memory 1g -e CPU_CORES=1 -e MEMORY_GB=0.9 ...
bash 复制代码
3. 清理容器# 停止并删除测试容器
docker stop cpu-mem-test
docker rm cpu-mem-test

注意事项

资源限制:虽然设置了环境变量要求6GB内存,但容器实际被限制在8GB内

特权模式:--privileged=true 给了容器较高权限,生产环境需谨慎使用

资源竞争:在资源有限的机器上运行可能影响其他服务

监控建议:运行时应监控主机资源使用情况

安全建议

对于生产环境测试:

使用非特权模式(如果测试允许)

设置明确的资源限制

在隔离的测试环境中进行

测试完成后及时清理容器

这个工具非常适合在可控环境中进行系统压力测试和资源管理验证。

相关推荐
雪可问春风19 小时前
docker环境部署
运维·docker·容器
云烟成雨TD20 小时前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
lwx91485220 小时前
Linux-Shell算术运算
linux·运维·服务器
于慨20 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg32132120 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
gelald20 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川20 小时前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
一轮弯弯的明月20 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
chenjingming66620 小时前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
殷紫川20 小时前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java