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

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

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

安全建议

对于生产环境测试:

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

设置明确的资源限制

在隔离的测试环境中进行

测试完成后及时清理容器

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

相关推荐
cfm_29147 分钟前
高并发系统缓存全解
java·缓存
16月6日-晴12 分钟前
Java面向对象进阶—static
java·开发语言
xiaohaiAIgeo1 小时前
【2026年】ASHRAE 110与EN 14175通风柜测试标准对比:进口与国产品牌性能差距
java·前端·数据库·科普知识
meilindehuzi_a1 小时前
TypeScript面试题:interface 与 type:相同点、核心区别与选择指南
java·ubuntu·typescript
AI人工智能+电脑小能手2 小时前
大白话说Java设计模式-08-建造者模式(业务实战篇)
java·设计模式·建造者模式·架构设计·对象构建
xbgRS2 小时前
java中的线程
java
程序员老陆3 小时前
说一说FFmpeg6在Linux平台的编译
linux·运维·服务器·ffmpeg
玫幽倩3 小时前
2026黄河流域公安院校-电子物证单项赛(程序逆向分析+服务器取证)
运维·服务器·python·电子取证·逆向·程序分析·服务器取证
ChaHae-In3 小时前
MyBatis入门操作
java·mybatis
xcLeigh3 小时前
Go入门:短变量声明的陷阱与最佳实践
java·redis·golang·教程·变量