编辑
2025-08-05
脚本备份
00
请注意,本文编写于 284 天前,最后修改于 284 天前,其中某些信息可能已经过时。

stress压测脚本备份

SHELL
#!/bin/bash # 检查依赖 for pkg in screen stress; do if ! command -v $pkg &>/dev/null; then echo "[ERROR] 未找到命令 '$pkg',请先安装:sudo apt update && sudo apt install -y $pkg" exit 1 fi done echo "===== 系统信息检测 =====" # CPU 型号 CPU_MODEL=$(lscpu | grep "Model name" | awk -F: '{print $2}' | sed 's/^[ \t]*//') echo "CPU 型号:$CPU_MODEL" # CPU 线程数 CPU_THREADS=$(lscpu | awk '/^CPU\(s\):/ {print $2}') echo "CPU 线程数:$CPU_THREADS" # CPU 物理核心数 CPU_CORES=$(lscpu | awk -F: '/^Core\(s\) per socket:/ {cores=$2} /^Socket\(s\):/ {sockets=$2} END {print cores * sockets}' | sed 's/^[ \t]*//') echo "CPU 物理核心数:$CPU_CORES" # 检查是否启用虚拟化 VIRT=$(lscpu | awk -F: '/Virtualization:/ {print $2}' | sed 's/^[ \t]*//') if [[ "$VIRT" == "VT-x" || "$VIRT" == "AMD-V" ]]; then echo "虚拟化支持:已启用($VIRT)" else echo "虚拟化支持:未启用或不支持" fi # 获取总内存(MB),然后换算为 GB TOTAL_MEM_MB=$(free -m | awk '/^Mem:/ {print $2}') TOTAL_MEM_GB=$(awk "BEGIN {printf \"%.0f\", ${TOTAL_MEM_MB} / 1024}") echo "总内存:${TOTAL_MEM_GB} GB" # 计算压测资源 USE_CPU=$(awk "BEGIN {printf \"%d\", (${CPU_THREADS} * 0.75 + 0.999)}") # 向上取整 USE_MEM_GB=$(awk "BEGIN {printf \"%.0f\", ${TOTAL_MEM_GB} * 0.75}") echo echo "===== 压测配置 =====" echo "使用 CPU 核心数:$USE_CPU" echo "使用 内存大小:${USE_MEM_GB} GB" echo "压测将在名为 'stress' 的 screen 会话中后台运行" echo "要停止压测,请运行:screen -r stress 然后 Ctrl+C 终止" echo # 启动 screen 压测(不限制时间) screen -dmS stress stress --cpu "$USE_CPU" --vm 1 --vm-bytes "${USE_MEM_GB}G" --vm-keep echo "压测已启动。你可以稍后通过以下命令进入查看:" echo " screen -r stress"