1.1 目标:在美国机房的大带宽服务器上稳定承载高并发(短连接或长连接)。
1.2 总体思路:选合适带宽与机房→系统与网络层调优→应用层优化→负载均衡与CDN→压测验证与监控。
2.1 选择运营商与机房:优先选择多骨干直连、支持BGP或云提供商(AWS/GCP/Azure)区域节点;确认上行/下行峰值与Burst策略。
2.2 带宽容量预估:并发数 × 单连接平均带宽 × 峰值系数,预留30%-50%冗余。
3.1 网络卡与队列:使用至少10Gbps或更高网卡,启用多队列(RSS)和驱动加速。
3.2 CPU与内存:多核优先,确保内存足够用于连接表与缓存。
4.1 备份并编辑 /etc/sysctl.conf,追加:
net.core.somaxconn=65535
net.core.netdev_max_backlog=250000
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_fin_timeout=15
net.ipv4.tcp_max_syn_backlog=65535
4.2 应用参数:sysctl -p。
4.3 增加文件描述符:编辑 /etc/security/limits.conf,增加:* soft nofile 200000\n* hard nofile 200000,然后重启服务或系统;运行 ulimit -n 查看。
5.1 Nginx(nginx.conf 关键参数):
worker_processes auto; worker_connections 65536; use epoll; keepalive_timeout 15; tcp_nopush on; tcp_nodelay on; client_body_buffer_size 16K; server_tokens off。
5.2 HAProxy:tune.maxaccept 4096,maxconn 设置为足够大,使用四层负载均衡分散到后端。
6.1 静态内容走CDN(Cloudflare/Akamai/CloudFront),减少回源流量。
6.2 启用HTTP/2与gzip、brotli,使用长连接与连接池(数据库和后端服务)。
6.3 缓存层:Redis/Memcached 做热点缓存,设置合理过期与LRU。
7.1 设计:前端使用云LB或自建L4/L7集群,后端做水平扩展,状态尽量无状态化。
7.2 弹性扩容:基于CPU、QPS或自定义指标触发自动扩容(AWS ASG/GCP Instance Group)。
7.3 抗DDoS:启用云厂商DDoS防护、WAF、黑白名单和速率限制。
8.1 压测工具:安装 wrk/ab/siege/hey 与 iperf3。示例:wrk -t12 -c2000 -d60s http://your-server/。
8.2 性能指标:关注95/99延迟、连接数、TCP重传、队列长度与CPU/IO。
8.3 监控与告警:部署Prometheus+Grafana,采集 node_exporter、nginx_exporter、haproxy_exporter,设置阈值告警并做故障演练。
问:理论上能否支持100万并发连接?
答:答:单台服务器难以直接支持100万并发,需多台分布式架构+L4/L7负载均衡+连接拆分(长连接代理、边缘节点)+内核与网络优化;同时使用CDN与流量分流,按并发特点横向扩展。
问:常见防护措施有哪些?
答:启用云厂商DDoS防护、WAF、速率限制与IP黑名单,前端接入CDN做清洗,配置有状态流量阈值告警,并在网络层使用ACL以及弹性带宽策略。
问:在美国机房部署高带宽如何控制成本?
答:选择按需+预留实例混合、使用CDN降低回源带宽、合理预估峰值与突发、使用弹性扩容避免过度预置、评估不同机房与带宽供应商价格并做流量调度。