1.1 登录实例与控制台:SSH 登录到你的 Oracle Cloud(甲骨文)日本实例,记录实例 OCID、形状(shape)、子网(subnet)与 VCN 配置。
1.2 安装工具:安装 mtr/iperf3/tcpdump/ethtool/net-tools。命令示例(Ubuntu):sudo apt update && sudo apt install -y mtr-tiny iperf3 tcpdump ethtool iproute2.
2.1 在控制台查看实例 shape,甲骨文不同 shape 对应网卡带宽上限,请以控制台说明为准。
2.2 使用 OCI CLI 查询:oci compute instance get --instance-id <你的实例ID>,确认可用带宽与增强网络选项。
3.1 Ping 测试:ping -c 20 <目标IP>,观察平均时延(rtt avg)、丢包比例。丢包>1%需进一步排查。
3.2 路由追踪:traceroute -n <目标> 或 tcptraceroute <目标> <端口>,看到是否经过不合理跳数或高延迟跃点。
3.3 实时路径质量:mtr -rwzbc 100 <目标>,重点看丢包在哪一跳开始大幅上升,定位网络链路问题。
4.1 在目标端(例如你本地或另一台云主机)运行 iperf3 -s。
4.2 在甲骨文实例运行:iperf3 -c <服务器IP> -P 8 -t 60,-P 指并发流数,-t 指测试秒数。观察吞吐速率与丢包、抖动情况。
4.3 同一区域内私有网络测试和跨公网测试都要做,若私有网络速率正常而公网差,问题出在 IGW/NAT/路由或云出口策略。
5.1 抓包:sudo tcpdump -i eth0 host <目标IP> and tcp -w /tmp/cap.pcap。抓取完成后用 Wireshark 或 tshark 分析重传、RTO、Dup ACK。
5.2 判断重传:在 wireshark 搜索 "tcp.analysis.retransmission" 或用 tshark -r cap.pcap -Y "tcp.analysis.retransmission" -T fields ...,定位问题时段与对端。
5.3 查看 MSS/窗口缩放:抓包可见 TCP 三次握手中的窗口参数,判断是否被中间设备修改或限速。
6.1 接口状态:ip link show eth0;查看 MTU 是否一致(MTU 不一致会导致分片延迟)。
6.2 ethtool 检查:sudo ethtool -S eth0 查看接口错误、丢包、rx_errors;sudo ethtool -k eth0 查看 offload 设置(如 GRO/TSO)。
6.3 qdisc 与流控:tc qdisc show dev eth0 检查是否有限速规则,必要时用 sudo tc qdisc del dev eth0 root 恢复默认(谨慎操作)。
7.1 临时调优示例:sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 6291456" && sudo sysctl -w net.ipv4.tcp_wmem="4096 65536 6291456"。
7.2 开启 BBR(若内核支持):sudo sysctl -w net.ipv4.tcp_congestion_control=bbr,并持久化到 /etc/sysctl.conf。
7.3 常见修复:调整 MTU、关闭不必要的 offload(ethtool -K eth0 gro off gso off tso off)或联系甲骨文支持确认宿主网段是否限速。
问:如何判断是云端出口限速还是实例本身问题?
答:先做私有网络(同VCN内)与公网的 iperf3 对比,若私有网络速率接近 shape 上限但公网明显下降,说明是云出口或 NAT/IGW 问题;若私有网络也低,查看实例 CPU/网络错误和 ethtool 统计,可能是实例配置或宿主机问题。
问:遇到丢包集中在某一跳怎么办?
答:用 mtr 定位该跳后,尝试在不同时间重复测试确认是否稳定出现。若该跳属于甲骨文内部(根据 ASN/路由判断),记录时间/样本并提交给甲骨文工单;若是 ISP 的跳点,联系对应运营商或变更出口路径。
问:快速排查流程总结(一步到位)?
答:1) 确认实例 shape 与带宽上限;2) ping/mtr 找到丢包/高延迟跳点;3) 私网/公网用 iperf3 对比带宽;4) 抓包看 TCP 重传;5) 检查 ethtool、tc、sysctl 并做临时调优;6) 若怀疑云端问题,整理证据提交甲骨文支持。