1.
准备测试环境与前提清单
- 硬件/实例:1台待测
马来西亚VPS(建议1核/2G以上用于网络测试)与1台位于同一/邻近地区的测试机(例如新加坡或马来西亚数据中心)。
- 系统与权限:两台均可 sudo,并安装常用工具(iperf3、wget、curl、wrk、ab、htop、iftop、nload、mtr、traceroute)。
- 网络注意:确保测试机与VPS之间路由稳定、非NAT共享链路,并知晓VPS是否有平台带宽上限或峰值策略(如突发包计费)。
2.
安装与基础配置命令
- 在两台主机上执行(以Debian/Ubuntu为例):sudo apt update && sudo apt install -y iperf3 htop iftop nload mtr traceroute curl wget git build-essential
- 安装压力工具:sudo apt install -y apache2-utils && git clone https://github.com/wg/wrk.git && cd wrk && make
- 提升fd限制(测试高并发必需):sudo vim /etc/security/limits.conf 添加 * soft nofile 200000 和 * hard nofile 200000,重启会话。
3.
带宽峰值(带宽抢占)测试——思路和指标
- 目标:测出VPS在短时间内可达到的最大吞吐(Mbps/Gbps)以及平台是否有带宽突发/平滑策略。
- 指标:峰值带宽(短时最大)、平均吞吐、抖动、丢包率、单连接与多并发连接表现。
4.
使用iperf3做TCP吞吐量测试的步骤
- 在测试服务器上启动iperf3服务端:iperf3 -s -i 1
- 在VPS上运行单流TCP测试(30秒):iperf3 -c <测试机IP> -t 30 -i 1
- 多流并发测试(10并发流):iperf3 -c <测试机IP> -P 10 -t 30 -i 1
- 记录结果:注意看[SUM]行的吞吐、丢包及重传数;若VPS上限受控,短时单次可能显示突发峰值。
5.
使用iperf3做UDP带宽与丢包测试
- UDP测试语法示例:iperf3 -c <测试机IP> -u -b 500M -t 20 -i 1(尝试递增-b直到丢包明显)。
- 观察:服务器端输出会显示丢包数与丢包率,若丢包大幅提升说明链路无法支撑目标带宽或运营商限速。
6.
判断带宽峰值策略的实操法
- 方法:先做短时高带宽UDP(10s-30s)再立刻再测,观察是否出现配额/冷却时间(例如平台允许突发,但后续受限)。
- 实验:连续3次短时高带宽测试,间隔10秒,记录每次平均吞吐是否下降。
7.
吞吐量长期稳定性测试
- 运行长时TCP测试:iperf3 -c <测试机IP> -t 600 -i 10(10分钟或更长),观察平均值与波动。
- 使用监控:在VPS上并行运行 ifstat 1 和 dstat,记录网卡入出流与CPU使用,判定是否CPU/网卡成为瓶颈。
8.
并发压力测试(HTTP场景)准备
- 部署简单Web服务(Nginx + 静态文件):sudo apt install -y nginx; 将一个1MB的静态文件放到 /var/www/html/test.bin。
- 调整内核参数以支持高并发:sudo sysctl -w net.core.somaxconn=65535; sudo sysctl -w net.ipv4.tcp_tw_reuse=1; 并设置 ulimit。
9.
使用wrk做高并发HTTP压测步骤
- 基本命令:./wrk -t12 -c1000 -d60s http://
/test.bin
- -t线程,-c并发连接数,-d持续时间。
- 逐步加压:从 c=50 开始到 c=2000,观察 Requests/sec、Latency、99% 延迟。若连接失败/超时,降低并查看 nginx 错误日志。
10.
使用ab(ApacheBench)做短时并发请求
- 示例命令:ab -n 10000 -c 500 http:///index.html
- 观察:Failed requests、Time per request (mean)、Requests per second;结合 Nginx access/error 日志确认瓶颈类型。
11.
并发测试中常见调优项与排查步骤
- 若CPU飙高:检查是否SSL/TLS加密导致CPU瓶颈,可临时使用纯HTTP测试。
- 若socket耗尽:查看 netstat -anp | grep TIME_WAIT 并调节 tcp_tw_recycle(慎用) / tcp_fin_timeout。
- 若磁盘I/O影响并发:用 dd / fio 测试磁盘并发写读,确认是否为磁盘瓶颈。
12.
测量与记录:如何做可靠的对比
- 每次测试记录:测试时间、命令、VPS配置、网络路径(mtr -r -c 10 )、CPU与内存占用、测试结果(带宽、延迟、丢包)。
- 建议建表记录并重复3次取中位数,以减少偶发网络抖动影响。
13.
网络诊断工具的组合使用与数据解读
- 路由与延迟:mtr 或 traceroute 可定位跳数异常;若最后几跳波动大,可能和上游ISP有关。
- 实时监控:iftop/nload 观察流量曲线,htop 观察CPU,iostat 或 sar 观察磁盘/系统压力。
14.
实测案例示例(如何写测试报告)
- 示例条目:VPS A(1vCPU/2GB,吉隆坡机房)——单流TCP峰值 420Mbps,多流10并发 920Mbps,UDP在700Mbps时丢包5%,wrk 1000并发下 p95 延迟120ms,CPU 60%。
- 结论建议:若业务是高并发Web优先选网络带宽更高的实例并增加CPU/网络增强包;若对延迟敏感考虑更靠近用户的机房。
15.
注意事项与伦理合规
- 做压力测试前务必获得VPS提供商许可,有些云商严格禁止大规模外网压测,可能导致账户封禁。
- 避免攻击第三方:压力测试应在自有服务或对方授权的测试目标上进行。
16.
常见问题快速解答 1/3 — 我可以在单台VPS上测到运营商真实峰值吗?
- 回答:可以看到一个参考峰值,但注意单台VPS可能被宿主机/同机房共享带宽、线路策略或平台QoS影响。推荐使用对端位于同区域的专用测试机并多次重复以减少偶发影响。
17.
常见问题快速解答 2/3 — 如果并发测试失败如何定位瓶颈?
- 回答:先看CPU/内存,然后网卡带宽与socket状态,再看应用层(Nginx日志)。使用 iftop/iftstat、vmstat、iostat、netstat 分步排查,有针对性地提升瓶颈资源后复测。
18.
常见问题快速解答 3/3 — 是否存在替代工具或更准确的测量方法?
- 回答:除了 iperf3 与 wrk,还可用 nuttcp、netperf、vegeta、hey、fio(测试磁盘影响),结合BGP/ISP层面信息与多地测试点进行更准确的评估。
来源:全面马来西亚vps评测含带宽峰值、吞吐量与并发压力测试