1.
准备与环境确认
步骤:1)确认服务器规格(带宽、公网IP、NIC型号、AS号)并记录;2)确认操作系统和内核版本:uname -a;3)安装必要工具:apt/yum install iperf3 ethtool tcpdump libmnl-utils traceroute curl jq;目的:确保测试工具与硬件信息可用。
2.
基础网络连通与带宽检测
步骤:1)使用ping测延迟并记录丢包率:ping -c 20 <目标IP>;2)使用traceroute定位跃点:traceroute -n <目标IP>;3)用iperf3做吞吐测试:iperf3 -s(服务器端),iperf3 -c <服务器IP> -P 8 -t 60(客户端并发8线程60秒),记录单向/双向带宽与丢包;4)必要时多时段、多地点测试以排除中间链路波动。
3.
网卡与链路级调优
步骤:1)查看网卡参数:ethtool -k eth0,ethtool -S eth0;2)关闭/开启offload视情况调整:ethtool -K eth0 gro off gso off tso off(测试是否改善CPU占用与丢包);3)调整MTU与开启Jumbo Frames(若链路支持):ip link set dev eth0 mtu 9000;4)检查错包:ifconfig eth0 或 ethtool -S eth0 中的 rx_errors。
4.
内核与TCP栈优化
步骤:在 /etc/sysctl.conf 或临时 sysctl -w 中设置:1)增加连接与缓存:net.core.somaxconn=10240 net.core.netdev_max_backlog=250000;2)缓冲区与拥塞控制:net.ipv4.tcp_rmem=4096 87380 6291456 net.ipv4.tcp_wmem=4096 65536 6291456 net.ipv4.tcp_congestion_control=bbr(或cubic);3)启用时间戳与快速回收:net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_fin_timeout=30。修改后用 sysctl -p 生效并用 ss -s 查看效果。
5.
流媒体服务(NGINX/RTMP/HTTP)配置
步骤:1)对NGINX进行worker与accept_mutex调优:worker_processes auto; worker_connections 65536;;2)启用sendfile、tcp_nopush、tcp_nodelay并调节proxy_buffer_size、proxy_buffers、proxy_busy_buffers_size以优化大文件传输;3)对于HLS/DASH,设置合适的segment时长(2-4s),调整缓存与keepalive;4)测试ffmpeg推流参数:ffmpeg -re -i input -c:v libx264 -preset fast -b:v 4M -f flv rtmp://host/app/stream。
6.
TLS、证书与安全组(防火墙)校验
步骤:1)检查防火墙/安全组规则(AWS Security Group/ACL):开放需要的端口(TCP 80/443、RTMP 1935、管理端口仅白名单);2)检查证书链:openssl s_client -connect host:443 -showcerts;3)启用HTTP/2与OCSP Stapling以降低TLS开销;4)使用sslyze或testssl.sh做并发握手压力测试。
7.
负载均衡、DNS与CDN联调
步骤:1)若使用负载均衡器(ELB/HAProxy),确认健康检查路径(/healthz)与超时时间;2)DNS TTL设置为可控(上线期低TTL方便回滚);3)与CDN协同测试回源:强制缓存/回源请求,检查头部(Via、X-Forwarded-For);4)做分阶段灰度:先少量流量到新节点,再扩大。
8.
监控、日志与压测
步骤:1)部署监控(Prometheus+Grafana、Alertmanager)采集net.if.in/out、tcp_retrans、cpu、disk IO;2)开启nginx/access/error日志并做logrotate;3)压力测试:用wrk/vegeta/ffmpeg并行模拟播放与推流,逐步升压到目标并观察丢包、95p延迟与错误率;4)使用tcpdump -w capture.pcap port 1935或port 443针对问题回放分析。
9.
上线前检查与回滚策略
步骤:1)列上线检查单:带宽测、链路稳定、证书、健康检查、监控告警;2)设定流量切分与监控阈值(错误率、延时、重试);3)准备回滚脚本与DNS回退计划(降低TTL提前生效);4)演练回滚一次并记录时间窗口与责任人。
10.
问:如何快速定位美国链路的带宽瓶颈在本端还是在中间ISP?
11.
答:先用iperf3做端到端测试并在多区域做对比;再用traceroute找出高延时/丢包跃点;若本机NIC统计(ethtool -S/ifconfig)无错误且本端CPU/队列未饱和,问题多在中间链路或对端带宽限制;可联系上游ISP或使用多个出口验证。
12.
问:上线后发现用户播放卡顿,如何快速从服务端定位?
13.
答:检查监控中TCP重传、rtmp/nginx错误率、后端响应时间;抓取对应时间段的tcpdump,看是否出现大量重传或SYN重试;查看服务器CPU、NIC队列、disk IO;如果回源慢,定位CDN/负载均衡配置或后端编码推流端问题。
14.
问:在美国跨洲传输时,哪些内核参数最值得调整?
15.
答:建议调大net.core.netdev_max_backlog、somaxconn、tcp_rmem/tcp_wmem上限以应对高带宽延迟产品;启用TCP BBR或选择合适拥塞控制;调整tcp_fin_timeout与tcp_tw_reuse减少TIME_WAIT堆积;并根据网卡支持调整offload与MTU。
来源:从部署到上线在美国大带宽服务器视频 项目中常见的网络与服务器调试步骤