基于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 给了容器较高权限,生产环境需谨慎使用

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

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

安全建议

对于生产环境测试:

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

设置明确的资源限制

在隔离的测试环境中进行

测试完成后及时清理容器

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

相关推荐
San813_LDD1 小时前
[C语言]《Dev-C++ 报错解决手册(Day0607 精华版)》
java·前端·javascript
Anastasiozzzz2 小时前
从有限状态机到智能体图:传统 FSM 与 Agent Graph的演进
java·人工智能·python·ai
007张三丰7 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
wang09078 小时前
自己动手写一个spring之IOC_2
java·后端·spring
weixin_604236678 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
来杯@Java8 小时前
学生选课管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·maven·mybatis
鹤落晴春9 小时前
【Linux复习】管理SELinux安全性
linux·运维·服务器
梦梦代码精9 小时前
2026年PHP开源商城系统实测对比:架构、多商户、商用授权,谁才是真·省心?
vue.js·docker·架构·开源·代码规范
不知名的老吴9 小时前
线程的生命周期之线程“插队“
java·开发语言·python