前言
对于一些比较追求极限的系统测试来讲:验证服务能在怎样恶劣的服务器环境下继续运行,是一个有必要的事。
这里我将给出三个脚本,实现:占用服务器内存和cpu资源的功能
sh脚本
占用内存
#!/bin/bash
mkdir /tmp/memory
# 占用10G的内存:10240M
mount -t tmpfs -o size=10240M tmpfs /tmp/memory
dd if=/dev/zero of=/tmp/memory/block
# 保持脚本运行,防止内存被释放
while true; do
sleep 1
done
rm /tmp/memory/block
umount /tmp/memory
rmdir /tmp/memory
占用cpu
cpu占用率受服务器本身的cpu性能影响上下波动,因此你需要适当调整TASK_COUNT
#!/bin/bash
# 这是针对多核CPU的脚本
# 定义要启动的后台任务数量
TASK_COUNT=4
# 启动多个后台计算任务
for ((i=0; i<$TASK_COUNT; i++)); do
# 使用&将命令放到后台执行
(
while true; do
# 执行复杂的数学运算
for ((j=0; j<100000000; j++)); do
let "result = ($j * $j) % 10000003" # 取模运算增加计算复杂性
done
done
)&
done
# 等待所有后台任务,防止脚本立即退出
wait
python脚本
占用cpu
import multiprocessing
def user_stress():
while True:
# 执行计算
result = 0
for i in range(10000000):
result += (i * i) % 10000003 #
if __name__ == "__main__":
# 设置要启动的进程数量
process_count = 4
# 创建并启动多个进程
processes = []
for _ in range(process_count):
process = multiprocessing.Process(target=user_stress)
process.start()
processes.append(process)
# 等待所有进程完成(实际上不会)
for process in processes:
process.join()