插件窝 干货文章 linux模拟资源占用 你会吗

linux模拟资源占用 你会吗

占用 bash 使用 stress 767    来源:    2025-05-14

Linux 模拟资源占用方法

作为IT工程师,我可以为您提供多种在Linux系统中模拟资源占用的方法。以下是几种常见资源的模拟占用方式:

CPU占用模拟

  1. 单核100%占用

    cat /dev/zero > /dev/null
    

    或使用yes命令:

    yes > /dev/null
    
  2. 多核100%占用

    for i in $(seq 1 $(nproc)); do cat /dev/zero > /dev/null & done
    
  3. 指定CPU使用率(需要安装stress-ng):

    stress-ng --cpu 1 --cpu-load 50  # 使用50%的CPU
    

内存占用模拟

  1. 占用指定大小的内存

    dd if=/dev/zero of=/dev/shm/memory bs=1M count=1024  # 占用1GB内存
    
  2. 使用stress工具

    stress --vm 1 --vm-bytes 2G --vm-keep  # 占用2GB内存
    
  3. 创建内存压力

    sudo sysctl vm.drop_caches=3  # 清理缓存后更容易看到内存占用效果
    

磁盘I/O占用

  1. 持续写入测试

    dd if=/dev/zero of=./testfile bs=1M count=1024 oflag=direct
    
  2. 使用stress工具

    stress --hdd 1 --hdd-bytes 1G  # 创建1GB文件并持续读写
    
  3. 随机I/O操作

    fio --name=random-write --ioengine=libaio --rw=randwrite --bs=4k \
    --size=1G --numjobs=1 --runtime=60 --time_based --end_fsync=1
    

网络带宽占用

  1. 使用iperf3(需要两台机器):

    # 服务器端
    iperf3 -s
    
    # 客户端
    iperf3 -c <server_ip> -t 60
    
  2. 使用dd和nc

    # 接收端
    nc -l -p 5000 > /dev/null
    
    # 发送端
    dd if=/dev/zero bs=1M count=1000 | nc <receiver_ip> 5000
    

综合工具

  1. stress工具

    stress --cpu 2 --io 1 --vm 1 --vm-bytes 1G --timeout 60s
    
  2. stress-ng工具(更高级):

    stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 1G --timeout 60s
    

注意事项

  1. 这些命令可能会显著影响系统性能,建议在测试环境中使用
  2. 使用前确保有足够的权限
  3. 监控资源使用情况可以使用tophtopvmstatiostat等工具
  4. 完成后记得终止相关进程,释放资源

需要针对特定场景的模拟方法或有其他需求,可以进一步说明。