- 拉取镜像
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或其他编排系统的资源调度能力
使用场景
- 开发测试
bash
# 快速创建一个测试环境
docker run -d --cpus 2 --memory 4g -e CPU_CORES=2 -e MEMORY_GB=3 ...
- 监控验证
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 给了容器较高权限,生产环境需谨慎使用
资源竞争:在资源有限的机器上运行可能影响其他服务
监控建议:运行时应监控主机资源使用情况
安全建议
对于生产环境测试:
使用非特权模式(如果测试允许)
设置明确的资源限制
在隔离的测试环境中进行
测试完成后及时清理容器
这个工具非常适合在可控环境中进行系统压力测试和资源管理验证。