Files
dock/CPU性能一键测试脚本

106 lines
3.2 KiB
Bash

#!/bin/bash
# 简化版VPS性能对比测试脚本
# 用法: bash <(curl -sSL https://raw.githubusercontent.com/username/vpsbench/main/simple_bench.sh)
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# 安装工具
echo "安装测试工具..."
if command -v yum >/dev/null 2>&1; then
yum install -y sysbench bc >/dev/null 2>&1
elif command -v apt-get >/dev/null 2>&1; then
apt-get update >/dev/null 2>&1
apt-get install -y sysbench bc >/dev/null 2>&1
fi
# 获取系统信息
CPU_CORES=$(nproc)
CPU_MODEL=$(grep "model name" /proc/cpuinfo | head -1 | cut -d: -f2 | sed 's/^ *//' | cut -c 1-30)
HOSTNAME=$(hostname)
# 运行测试
echo "正在测试CPU性能..."
# 单核测试
SINGLE=$(sysbench cpu --threads=1 --cpu-max-prime=20000 run 2>/dev/null | grep "events per second" | awk '{printf "%.1f", $4}')
# 多核测试
MULTI=$(sysbench cpu --threads=$CPU_CORES --cpu-max-prime=20000 run 2>/dev/null | grep "events per second" | awk '{printf "%.1f", $4}')
# 浮点测试
echo "scale=2000; 4*a(1)" | bc -l -q >/dev/null 2>&1 &
FLOAT_PID=$!
sleep 3
if ps -p $FLOAT_PID > /dev/null; then
FLOAT_TIME=">3秒"
kill $FLOAT_PID 2>/dev/null
else
FLOAT_TIME="<3秒"
fi
# 显示对比结果
echo ""
echo -e "${BLUE}=========================================${NC}"
echo -e "${BLUE} VPS性能对比结果${NC}"
echo -e "${BLUE}=========================================${NC}"
echo "主机: $HOSTNAME"
echo "CPU: $CPU_MODEL"
echo "核心: $CPU_CORES"
echo ""
echo -e "${BLUE}性能指标${NC} ${BLUE}当前VPS${NC} ${BLUE}评级${NC}"
echo "-----------------------------------------"
# 单核性能对比
if (( $(echo "$SINGLE > 800" | bc -l) )); then
SINGLE_RATING="${GREEN}优秀${NC}"
elif (( $(echo "$SINGLE > 500" | bc -l) )); then
SINGLE_RATING="${YELLOW}良好${NC}"
else
SINGLE_RATING="${RED}一般${NC}"
fi
printf "单核性能: %-10s %-10s\n" "$SINGLE" "$SINGLE_RATING"
# 多核性能对比
EXPECTED_MULTI=$(echo "$SINGLE * $CPU_CORES * 0.8" | bc | awk '{printf "%.1f", $1}')
if (( $(echo "$MULTI > $EXPECTED_MULTI" | bc -l) )); then
MULTI_RATING="${GREEN}优秀${NC}"
elif (( $(echo "$MULTI > $(echo "$SINGLE * $CPU_CORES * 0.6" | bc)" | bc -l) )); then
MULTI_RATING="${YELLOW}良好${NC}"
else
MULTI_RATING="${RED}一般${NC}"
fi
printf "多核性能: %-10s %-10s\n" "$MULTI" "$MULTI_RATING"
# 浮点性能对比
if [ "$FLOAT_TIME" = "<3秒" ]; then
FLOAT_RATING="${GREEN}优秀${NC}"
else
FLOAT_RATING="${RED}一般${NC}"
fi
printf "浮点性能: %-10s %-10s\n" "$FLOAT_TIME" "$FLOAT_RATING"
echo "-----------------------------------------"
# 显示参考标准
echo ""
echo -e "${YELLOW}参考标准:${NC}"
echo -e "${GREEN}优秀${NC}: 单核>800, 多核效率>80%"
echo -e "${YELLOW}良好${NC}: 单核500-800, 多核效率60-80%"
echo -e "${RED}一般${NC}: 单核<500, 多核效率<60%"
# 保存结果用于后续对比
RESULTS_FILE="/tmp/vps_bench_$(date +%Y%m%d_%H%M%S).txt"
cat > $RESULTS_FILE << EOF
$HOSTNAME | $CPU_CORES核 | 单核:$SINGLE | 多核:$MULTI | 浮点:$FLOAT_TIME
EOF
echo ""
echo -e "结果已保存: ${GREEN}$RESULTS_FILE${NC}"
echo -e "对比其他VPS时查看这些文件即可"