作为IT工程师,我可以为您提供多种在Linux系统中模拟资源占用的方法。以下是几种常见资源的模拟占用方式:
单核100%占用:
cat /dev/zero > /dev/null
或使用yes
命令:
yes > /dev/null
多核100%占用:
for i in $(seq 1 $(nproc)); do cat /dev/zero > /dev/null & done
指定CPU使用率(需要安装stress-ng):
stress-ng --cpu 1 --cpu-load 50 # 使用50%的CPU
占用指定大小的内存:
dd if=/dev/zero of=/dev/shm/memory bs=1M count=1024 # 占用1GB内存
使用stress工具:
stress --vm 1 --vm-bytes 2G --vm-keep # 占用2GB内存
创建内存压力:
sudo sysctl vm.drop_caches=3 # 清理缓存后更容易看到内存占用效果
持续写入测试:
dd if=/dev/zero of=./testfile bs=1M count=1024 oflag=direct
使用stress工具:
stress --hdd 1 --hdd-bytes 1G # 创建1GB文件并持续读写
随机I/O操作:
fio --name=random-write --ioengine=libaio --rw=randwrite --bs=4k \
--size=1G --numjobs=1 --runtime=60 --time_based --end_fsync=1
使用iperf3(需要两台机器):
# 服务器端
iperf3 -s
# 客户端
iperf3 -c <server_ip> -t 60
使用dd和nc:
# 接收端
nc -l -p 5000 > /dev/null
# 发送端
dd if=/dev/zero bs=1M count=1000 | nc <receiver_ip> 5000
stress工具:
stress --cpu 2 --io 1 --vm 1 --vm-bytes 1G --timeout 60s
stress-ng工具(更高级):
stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 1G --timeout 60s
top
、htop
、vmstat
、iostat
等工具需要针对特定场景的模拟方法或有其他需求,可以进一步说明。