答:优先从内核网络栈和文件描述符入手。建议修改的关键项包括:net.core.somaxconn、net.ipv4.tcp_max_syn_backlog、net.ipv4.tcp_tw_reuse、net.ipv4.tcp_fin_timeout、net.core.netdev_max_backlog、fs.file-max 等。
常用命令示例(sysctl 临时生效):sysctl -w net.core.somaxconn=65535;sysctl -w net.ipv4.tcp_fin_timeout=30;并在 /etc/sysctl.conf 中持久化。为提高并发连接数同时需调整 ulimit -n 至 200000 以上。
开启 TCP 快速重用、调高 backlog、提升 netdev 队列长度,可减轻在瞬时并发下的丢包与连接拒绝。注意:tcp_tw_recycle 在新版内核不可用,优先使用 tcp_tw_reuse。
答:CN2链路通常对大陆方向有较优的延迟与丢包特性,推荐使用BBR拥塞控制以提升带宽利用和抗丢包能力。启用方法:modprobe tcp_bbr;sysctl -w net.ipv4.tcp_congestion_control=bbr。
同时可配置 TCP 窗口自动调节:net.ipv4.tcp_moderate_rcvbuf=1,调大 net.ipv4.tcp_rmem 与 tcp_wmem 的上限,以支持高带宽延迟乘积(BDP)。
部分旧内核或宿主机限制可能不支持 BBR,此时可选 cubic 或hybla,但在 CN2 对大陆场景下 BBR 通常最佳。若为 HTTP 服务,结合 keepalive、SO_REUSEPORT、epoll/IO_uring 可进一步提升并发表现。
答:在服务层面需优化连接模型与工作进程:Nginx 推荐使用 worker_processes auto,worker_connections 设为 65535,开启 reuseport 与 keepalive_timeout 适度降低(如 20s 或更低)。对于 Node 可用 cluster 或 PM2 管理多进程。
同时启用 gzip/静态文件分发、使用 CDN 或缓存层(Varnish、Redis 缓存)以减少后端压力。数据库连接池大小应与应用并发匹配,避免大量短连接导致资源耗尽。
nginx.conf 中:events { worker_connections 65535; use epoll; } http 中:keepalive_timeout 20; proxy_buffering on; server_tokens off;
答:推荐建立 Prometheus + node_exporter + Grafana 的监控体系,覆盖指标包括 CPU、内存、磁盘 I/O、网络带宽、丢包、连接数量(ss/netstat)、文件描述符使用、进程线程数及应用层延迟(APM)。
配合 alertmanager 设置阈值告警(如 95% 文件句柄使用、netdev RX/TX 丢包、SYN 数量异常),并保存历史数据以便回溯分析突发事件。
现场排查可用 iftop、nload、iftop、ss、tcpdump、iotop、atop、perf,快速定位网络丢包、链路拥塞或磁盘延迟问题。
答:第一时间启用防护策略:限制 SYN/连接速率(iptables/nftables rate limit)、开启 fail2ban、使用云端或托管提供商的上游防护(如DDoS清洗)。同时可临时增加 keepalive 关闭、缩短超时、降级非核心功能以释放资源。
长期建议准备弹性扩容方案(负载均衡+多节点部署)、连接池与队列限流、熔断降级策略,并在监控中建立自动化脚本以在阈值触发时执行规则切换或流量黑洞操作。