1.
准备测试环境与选型
步骤:1) 选定供应商(例如 AWS São Paulo、Google São Paulo、DigitalOcean Brazil、Local ISP/Hoster);2) 在每家部署同一规格实例(相同vCPU、内存、操作系统如Ubuntu 22.04、同一可用区或尽量同城);3) 记录实例ID、镜像、计费规格、公网/私网IP。小分段:确保时间同步sudo timedatectl set-ntp true;打开防火墙端口用于测试(iperf3默认5201)。
2.
基础检查与系统准备
步骤:1) SSH登录sudo apt update && sudo apt install -y iperf3 fio sysbench mtr traceroute curl git;2) 查看CPU/IO信息:lscpu;lsblk -f;3) 关闭不必要服务以减少干扰sudo systemctl disable --now snapd;小分段:记录内核版本uname -r与网络MTU ip link show。
3.
网络延迟与路由检测(ping/mtr/traceroute)
操作:1) ping -c 10 目标IP(如测试者所在位置或第三方测点)记录平均时延与丢包;2) mtr -r -c 100 target_ip 得到逐跳丢包与延迟;3) traceroute -n target_ip 查看路径。小分段:多次在不同时间段(早/中/晚)各做3次并取中位数。
4.
带宽吞吐测试(iperf3)
操作:1) 在一个实例上启动服务器iperf3 -s;2) 在另一端作为客户端iperf3 -c server_ip -P 4 -t 60 --get-server-output;说明:-P 4 为并发流数,-t 60 为测试60秒;小分段:分别测试公网(public IP)与私网(private IP)并记录Mbps峰值与平均。
5.
HTTP下载与单连接吞吐(curl)
步骤:1) 在目标实例上准备大文件(例如dd if=/dev/zero of=/tmp/1G.bin bs=1M count=1024);2) 开启简单HTTP服务python3 -m http.server 8080;3) 客户端curl -o /dev/null -w "time_total:%{time_total} size:%{size_download} speed:%{speed_download}\n" http://server_ip:8080/1G.bin;小分段:记录time_total与speed_download用于比较单连接表现。
6.
磁盘IO基准(fio)
步骤:1) 编写简单fio配置文件(示例):[global] ioengine=libaio direct=1 rw=randrw bs=4k size=1G numjobs=4 runtime=60; [test];2) 运行fio --filename=/dev/sdb --name=test_job --section=test;3) 记录iops、latency、bw。小分段:对比本地盘与云盘(块存储)并重复多次。
7.
顺序写测量(dd)
操作:dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 conv=fdatasync;注意conv=fdatasync确保数据写入磁盘后结束,dd会输出写入速率,用于顺序写对比。
8.
CPU与单线程多线程性能(sysbench)
步骤:1) sysbench cpu --threads=1 --time=60 run(单线程);2) sysbench cpu --threads=8 --time=60 run(多线程,线程数设为vCPU数);3) 记录事件/秒与平均响应时间。小分段:若需要内存测试使用sysbench memory。
9.
资源监控与进程级采样
操作:1) 在测试时运行vmstat 1 120或sar采样以了解CPU/I/O压力;2) 用iftop或nload监控实时带宽;3) 使用top/htop观察负载尖峰。小分段:将监控输出重定向到文件,便于后续对照。
10.
测试数据收集与复现化
步骤:1) 每项测试做至少3次并取中位值;2) 将结果写入CSV格式:provider,region,instance,type,test,metric,value,unit,timestamp;示例头:provider,region,instance,test,metric,value,unit,time;3) 用Excel或Python pandas做可视化比较。小分段:保留原始日志以便问题复现。
11.
对比分析方法
步骤:1) 对不同供应商相同测试指标(延迟、带宽、IOPS、单核性能)做归一化处理;2) 以百分位(50/90/99)展示延迟抖动;3) 比较成本/性能比(每美元吞吐或IOPS)。小分段:考虑地域差异与可用区冗余对结果的影响。
12.
注意事项与陷阱
提示:1) 公网测得的带宽受中间路由与节点限制,不仅仅是云端;2) 磁盘性能受IO队列与burst策略影响,需观察长期测试;3) 高并发测试可能触发云厂商防护,需与客服沟通避免封锁。小分段:测试时间覆盖工作时段与非工作时段。
13.
结论与推荐步骤模板
建议:1) 制作测试计划(目标、时间、实例规格);2) 执行准备、基线测试、压力测试、监控、数据归档、分析;3) 根据结果选择性价比最高的供应商并做长期可用性观测。小分段:将脚本化工作流程(Bash/Ansible)以提高复现性。
14.
问:如何保证多家供应商测试公平性?
15.
答:保证相同实例规格、相同操作系统与补丁级别、相同测试时间窗口、多次重复并取中位数,同时在不同时间段做对比;对网络测试同时做私网与公网区分,记录路由信息以便修正偏差。
16.
问:如果测试时遇到突发带宽下降或抖动怎么办?
17.
答:首先查看监控(vmstat/iftop/sar)是否为实例自身资源瓶颈,再用traceroute/mtr检查路由路径,排除中间链路问题;如为云平台限流,联系供应商支持并保留测试日志作为证据。
18.
问:如何把测试自动化并长期监控?
19.
答:将测试脚本用Cron或CI定时运行,结果写入时序DB(InfluxDB/Prometheus),并用Grafana建面板;对异常设置告警(延迟/丢包/IOPS下降),并定期生成报告比较供应商趋势。
来源:技术评测汇总比较几家巴西云服务器公司真实性能