新买的 VPS 性能如何?是否达到预期?本教程介绍完整的 VPS 性能测试方法和优化技巧,帮你全面了解服务器性能并做出针对性优化。
一、为什么要做性能测试
测试目的:
- 验证 VPS 配置是否达标
- 发现性能瓶颈
- 为优化提供数据支持
- 建立性能基线,便于后续对比
二、CPU 性能测试
1. UnixBench(综合基准)
curl -soft -sL https://raw.githubusercontent.com/teslamotors/unix-bench/master/Run -o unixbench.sh chmod +x unixbench.sh ./unixbench.sh # 查看结果 # 关注:System Benchmarks Index Score
2. sysbench(CPU 计算)
# 安装 apt install sysbench -y # 素数计算测试 sysbench cpu --cpu-max-prime=20000 --events=10000 run # 关注:events per second(越高越好)
3. GeekBench(跨平台)
wget https://cdn.geeks.com/geekbench/Geekbench-5.x.x-Linux.tar.gz tar -xzf Geekbench-5*.tar.gz cd Geekbench-5* ./geekbench --benchmark # 在线查看结果 # https://browser.geekbench.com/v5/cpu
三、内存性能测试
1. Stream(内存带宽)
# 下载编译 wget https://www.cs.virginia.edu/stream/FTP/Code/stream.c gcc -O3 -fopenmp -o stream stream.c ./stream # 关注:Copy, Scale, Add, Triad 带宽(MB/s)
2. 内存延迟测试
# 使用 lmbench apt install lmbench -y lmbench-all
四、磁盘 IO 性能测试
1. fio(综合磁盘测试)
apt install fio -y # 随机读取测试 fio --name=randread --ioengine=libaio --iodepth=1 --rw=randread --bs=4k --direct=0 --size=1G --numjobs=4 --runtime=60 --group_reporting # 顺序写入测试 fio --name=seqwrite --ioengine=libaio --iodepth=1 --rw=write --bs=1m --direct=1 --size=1G --numjobs=1 --runtime=60 --group_reporting # 关注:IOPS 和 throughput
2. dd(简单测试)
# 写入测试 dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct # 读取测试 dd if=testfile of=/dev/null bs=1G count=1 # 关注:写入/读取速度(GB/s)
五、网络性能测试
1. Speedtest(带宽测试)
# 安装 apt install speedtest-cli -y # 测试 speedtest-cli # 关注:Upload/Download(Mbps)
2. iPerf3(内网带宽)
# 服务器端 iperf3 -s # 客户端 iperf3 -c 服务器 IP -P 4 # 关注:Bandwidth(Gbits/sec)
3. 延迟和丢包测试
# mtr 测试 mtr -rwc 100 目标地址 # 关注:Loss%(丢包率)和 Avg(延迟)
六、Web 服务器性能测试
1. Apache Bench
apt install apache2-utils -y # 测试 ab -n 10000 -c 100 https://你的域名/ # 关注:Requests per second, Time per request
2. wrk(现代压测工具)
apt install wrk -y wrk -t12 -c400 -d30s https://你的域名/ # 关注:Req/Sec, Latency
七、数据库性能测试
MySQL Benchmark
# 使用 sysbench sysbench oltp_read_write --mysql-host=localhost --mysql-user=test --mysql-password=test --tables=10 --table-size=100000 prepare sysbench oltp_read_write --mysql-host=localhost --mysql-user=test --mysql-password=test --tables=10 --table-size=100000 --threads=8 --time=60 run # 关注:transactions per second
八、性能优化建议
1. CPU 优化
# 调整进程优先级 renice -n -5 -p 进程 ID # 使用 taskset 绑定 CPU 亲和性 taskset -c 0-3 命令
2. 内存优化
# 调整 swappiness echo 10 > /proc/sys/vm/swappiness # 增加文件描述符限制 ulimit -n 65535
3. 磁盘 IO 优化
# 使用 Deadline I/O 调度器 echo deadline > /sys/block/sda/queue/scheduler # 调整预读大小 blockdev --setra 4096 /dev/sda
4. 网络优化
# 优化 TCP 参数 cat >> /etc/sysctl.conf << EOF net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65535 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 1024 65535 EOF sysctl -p
九、监控工具推荐
- htop - 实时系统监控
- iotop - 磁盘 IO 监控
- nethogs - 网络流量监控
- glances - 综合监控
- Prometheus+Grafana - 专业监控方案
十、性能测试脚本整合
#!/bin/bash # VPS 性能一键测试脚本 echo "========== CPU 测试 ==========" sysbench cpu --cpu-max-prime=20000 --events=10000 run echo "========== 内存测试 ==========" sysbench memory run echo "========== 磁盘测试 ==========" dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct && rm testfile echo "========== 网络测试 ==========" speedtest-cli echo "========== 测试完成 =========="
总结
性能测试是了解服务器能力的重要手段,定期测试可以帮助我们发现潜在问题并做出针对性优化。建议在新 VPS 上线、配置变更、性能下降时进行测试。
来源:https://mjj.728.hk/