1. 测试前准备与目标设定
- 明确测试目标:稳定性(可用率、丢包、延迟)、资源隔离(CPU/内存/IO)、持续性能(高并发/磁盘IO)、网络链路质量。
- 工具准备:ping/mtr/traceroute、iperf3、curl、ab/wrk/siege、fio、dd、iostat/vmstat/top、systemd-detect-virt、lscpu、cat /proc/*。
- 测试环境:本地测试机(台湾或外网若要对比),同时准备外部节点(香港、日本、国内大陆)用于跨区域对比。
2. 网络连通与延迟检测(操作步骤)
- ping(基础):ping -c 20 目标IP,记录平均延迟与丢包率;期望台湾本地 < 10-30ms、丢包 < 0.5%。
- 路径分析:mtr -r -c 100 目标IP 或 traceroute -n,查看哪一跳出现丢包或跳数异常。
- 带宽测试:在服务器与测试机上安装iperf3,server端:iperf3 -s;client端:iperf3 -c SERVER_IP -P 10 -t 60,观察吞吐与抖动。
3. 丢包与抖动深化检测
- 连续监控:使用smokeping或PingPlotter做24-72小时记录,确认是否存在间歇性丢包或高延迟窗口。
- 多线路对比:从不同地区发起mtr/iperf,判断问题是否为机房出海链路或本地骨干拥塞。
4. CPU 与调度公平性检测
- 查看虚拟化类型:systemd-detect-virt 或 virt-what。不同虚拟化(KVM、LXC、OpenVZ)检测方式不同。
- 运行基准:在VPS上运行stress-ng或sysbench CPU测试(sysbench --test=cpu --cpu-max-prime=20000 run),记录用户时间与系统时间。
- 检查CPU steal:vmstat 1 10 或 top 中查看%st(steal),长期应 < 3%;若高于5-10%,说明宿主机过载或超售严重。
- cgroups 配置:查看 /sys/fs/cgroup/cpu/* 中的 quota/period,若有限制,记录数值并与承诺核数对比。
5. 内存与交换(SWAP)行为检测
- 基本查看:free -m,观察可用内存与Swap使用情况。
- 压力测试:使用 stress-ng --vm 1 --vm-bytes 90% --vm-keep 运行,观察是否触发OOM或频繁swap。
- 监控指标:ps、vmstat 查看si/so(交换进出)应近乎为0,若频繁发生需要求增加保留内存或改用dedicated内存方案。
6. 磁盘IO与存储性能实测
- 简单写入测试:dd if=/dev/zero of=testfile bs=1M count=1024 oflag=direct; 记录写入带宽与同步时间。
- 专业IO测试:fio --name=randrw --rw=randrw --bs=4k --size=2G --numjobs=4 --runtime=60 --group_reporting,查看IOPS、延迟(latency)。
- 阈值参考:SSD随机4k读写延迟 < 5ms, IOPS > 数万(视规格);共享磁盘或云块存储若延迟>20ms需慎重。
7. 高并发与应用层压力测试
- HTTP压力测试:使用wrk或ab模拟真实负载,例如 wrk -t12 -c400 -d60s http://域名/,观察服务器吞吐、95/99百分位响应时间。
- 数据库压力:对接数据库在非生产环境用sysbench或mysqlslap运行并发测试,检查事务延时与锁等待。
- 解释结果:响应时间呈线性上升或出现大量超时表示资源竞争或IO瓶颈。
8. 持续监控方案与告警设置
- 部署基础监控:Prometheus + node_exporter + Grafana 或使用第三方UptimeRobot/Pingdom,收集CPU、内存、磁盘IO、网络延迟、丢包。
- 告警阈值示例:可用率 < 99.95%、丢包 > 1%、%steal > 5%、磁盘延迟95p > 20ms 即触发告警。
- 日志与回溯:保留至少7天监控数据,便于回溯突发事件原因。
9. 合同与服务(SLA)验证步骤
- 索要SLA条款:明确可用率计算口径、带宽峰值、丢包/延迟免责条款与赔偿机制。
- 验证备份/快照:要求演练恢复(从快照恢复到另一台)并记录时间。
- 网络冗余与DDoS:确认是否有多承载商、BGP多线与DDoS清洗服务并测试故障切换。
10. 问:如何判断台湾本地访问延迟是否符合业务需求?
- 请从台湾本地多个节点(如台北、台中、高雄)分别ping与mtr到服务器并做长期记录;本地网站/应用对交互要求高则期望平均延迟 < 30ms、99百分位 < 50ms,出现明显波动或间歇性丢包需联系机房定位链路。
11. 答:判断方法与改进建议
- 若延迟或丢包不达标,先从机房路由与对等(peering)问机房,再评估是否启用CDN、就近节点或选择多线/多机房部署;对于频繁抖动可要求机房提供链路质量报告或更换线路。
12. 问:虚拟主机被“超售”如何检测与应对?
- 观察长期%steal、IO等待、CPU/IO抖动和邻居噪声(短时间内负载骤增导致性能下降)。使用上述压力测试和监控数据对比服务商承诺资源,若确有超售证据,要求迁移到保证型实例或更换提供商。
13. 答:维权与技术沟通要点
- 提供测试日志(时间戳的ping/mtr/iperf/fio等),与客服或技术团队沟通并要求技术排查或迁移;合同中若有SLA赔付条款,可按条款申请补偿。
14. 问:日常维护中有哪些必须持续监测的关键指标?
- 必监指标包括:可用率、网络丢包/延迟、%steal、磁盘延迟(95/99分位)、Swap发生、服务响应95/99分位时间和错误率;设置自动告警并定期复盘。
来源:评估台湾服务器托管虚拟主机稳定性与资源分配的关键指标