1. 带宽与拓扑规划(前期测算与分配)
1) 确定业务峰值并测算带宽:用并发连接数×单连接峰值带宽×安全余量(建议1.5-2倍)。例如:并发5000,每连接峰值50KB/s → 5000×50KB=250MB/s≈2Gbps,预留到4Gbps。
2) 多线路与多机房:在
美国站群推荐至少跨2个地区(如东岸/西岸),每个机房至少2条上游不同带宽/运营商;实现容灾与路由冗余。
3) 合同与BGP/Anycast策略:与带宽供应商确认burst、包丢/延迟SLA;使用Anycast分发(CDN/自建路由)将流量分散到最近的节点。
2. CDN 与缓存策略(减少原站带宽)
1) 静态资源走CDN:将图片、JS、CSS等100%走CDN并设置长缓存(Cache-Control max-age=86400或更长)。
2) 动态与边缘缓存:对可缓存的动态接口使用边缘缓存或stale-while-revalidate策略,设置合理的Vary与Cache-Control头。
3) 配置回源限速与并发限制:CDN回源并发设置不要把峰值全部推给原站,配置回源并发与速率上限,避免瞬时压垮原站。
3. 负载均衡器选择与基本配置(HAProxy/Nginx/云LB)
1) 选择:自建推荐HAProxy(高并发、灵活),反向代理可用Nginx;云上优先使用云LB(ELB/CLB)并结合本地负载器做二级转发。
2) HAProxy示例配置要点:frontend接受大并发,设置 tune.ssl.default-dh-param、maxconn、timeout client/server,backend使用option http-server-close或http-keep-alive视会话需求配置keepalive。示例:maxconn 200000、timeout client 60s。
3) 会话粘性与无状态化:优先做无状态设计(JWT/Redis Session);必须粘性时用cookie或源IP,但会影响负载均衡效果。
4. 内核与TCP网络调优(关键sysctl与命令)
1) 常用sysctl设置(写入 /etc/sysctl.conf 并 sysctl -p):
net.core.somaxconn=65535
net.core.netdev_max_backlog=300000
net.ipv4.tcp_max_syn_backlog=65535
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_rmem=4096 87380 6291456
net.ipv4.tcp_wmem=4096 65536 6291456
net.core.rmem_max=16777216
net.core.wmem_max=16777216
2) 启用TCP BBR(提升吞吐与抗拥塞):
modprobe tcp_bbr
echo "bbr" > /proc/sys/net/ipv4/tcp_congestion_control
确认:sysctl net.ipv4.tcp_congestion_control。
3) 文件描述符与进程限制:ulimit -n 100000;修改 /etc/security/limits.conf 对应用户设置;确保 fs.file-max 足够大。
5. 应用层与负载均衡细节(HTTP/2、TLS、健康检查)
1) TLS终端与加速:在LB层做TLS终端(减少后端负担),使用OCSP Stapling,启用HTTP/2并开启TLS会话复用。
2) Keepalive与连接复用:在Nginx upstream 或 HAProxy配置 keepalive(如keepalive 1024)减少握手;设置合理的timeout来避免占用过久。
3) 健康检查与权重调整:配置探活接口(/healthz),探测间隔与阈值(例如 interval 5s rise 3 fall 2),根据后端响应时间动态调整权重/下线实例。
6. 监控、压测与上线流程(实战步骤)
1) 监控项:带宽流量(IN/OUT)、连接数、95/99延迟、丢包率、CPU/内存、tcp retrans/syn、错误率;工具:Prometheus + Grafana、cAdvisor、ELK。
2) 压测流程:在测试环境用wrk/hey/jMeter做多轮压力测试,逐步加压并记录瓶颈;关注time_wait、连接耗尽、回源峰值。示例命令:wrk -t12 -c5000 -d300s http://yourdomain/。
3) 上线节奏:先灰度(10%流量)→ 观察24小时 → 分批扩大(30%→60%→100%);若发现问题回滚并分析日志与监控。
7. 问答一:站群带宽如何按地域分配最合理?
问:我有美国东西两岸用户,该如何在站群间分配带宽?
答:按用户分布和峰值计算分配:先统计各机房用户占比与峰值并发,按比例分配基础带宽,再为主流高峰机房额外留60%-100%冗余;同时在DNS/Anycast层做流量智能分发,确保非繁忙机房可接管流量。
8. 问答二:内核调优有哪些最低可操作命令?
问:没有太多内核经验,最简单的三条命令有哪些?
答:可执行三项快速优化:1) ulimit -n 100000(提高文件描述符);2) echo 65535 > /proc/sys/net/core/somaxconn(增加连接队列);3) sysctl -w net.ipv4.tcp_fin_timeout=30(缩短TIME_WAIT)。完成后把稳定设置写入配置文件永久生效。
9. 问答三:如何验证负载均衡配置是否达到预期?
问:部署完LB与优化后,怎样验证效果?
答:做端到端压测并结合监控:使用分布式压测工具从不同地域并发发起请求,观察带宽利用率、后端CPU/内存、连接数、错误率与延迟曲线;用流量回放/峰值突发测试验证自动扩容与健康检查触发是否正常,确保没有单点瓶颈。
来源:6美国站群服务器带宽与负载均衡配置优化要点总结