答:要提升并发与吞吐,先从内核网络缓冲与队列相关参数入手,关键项包括 net.core.somaxconn、net.ipv4.tcp_max_syn_backlog、net.core.netdev_max_backlog、net.ipv4.tcp_fin_timeout、fs.file-max 与文件描述符限制(ulimit -n)。推荐示例(写入 /etc/sysctl.conf 并 sysctl -p):
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.core.netdev_max_backlog = 250000
net.ipv4.tcp_fin_timeout = 30
fs.file-max = 2000000
此外启用高性能拥塞控制如 BBR:echo bbr > /proc/sys/net/ipv4/tcp_congestion_control,并确保内核支持。增大 TCP 读写缓冲 tcp_rmem/tcp_wmem,并调整 tcp_tw_reuse(注意兼容性)。这些改动能让 1Gbps 链路在高并发时保持较高吞吐。
echo "net.core.somaxconn=65535" >> /etc/sysctl.conf && sysctl -p
modprobe tcp_bbr; echo "tcp_bbr" >> /etc/modules-load.d/modules.conf; sysctl -w net.ipv4.tcp_congestion_control=bbr
答:首先确认链路 MTU(通常 1500),不要盲目开启 jumbo frame(9000)除非底层网络完全支持。启用 GRO/GSO/TSO 可以减轻 CPU 但在虚拟化/隧道场景可能导致延迟波动;若遇到小包高并发可尝试关闭单项进行对比(使用 ethtool -K eth0 tso on|off)。
拥塞控制优先选择 BBR(低延迟高带宽),备选为 cubic。开启 tcp_mtu_probing=1 在路径发现有 PMTU 问题时很有用。示例:
sysctl -w net.ipv4.tcp_mtu_probing=1
ping -M do -s 1472 <目标> 查看是否需要调整
使用 iperf3 在开启/关闭 TSO/GRO 情况下对比延迟与吞吐,选取稳定且延迟最低的配置。
答:应用层需调整连接与文件描述符上限,配合内核的 backlog 与 socket 缓冲。Nginx 常见调整包括 worker_processes = auto, worker_connections = 65535, worker_rlimit_nofile = 200000。启用 epoll 与 reuseport、减少 keepalive_timeout(例如 5 秒)以释放连接资源。
应用层还可使用 TCP_FASTOPEN(加速握手)、SO_REUSEPORT(多进程均衡),并在高并发场景下关闭 accept_mutex 以降低延迟。确保系统 ulimit -n 与 /etc/security/limits.conf 中设置匹配。
worker_processes auto;
worker_rlimit_nofile 200000;
events { use epoll; worker_connections 65535; multi_accept on; }
答:使用多种工具从不同层次验证:工具包括 iperf3(吞吐)、wrk/ab/httperf(HTTP 并发压测)、ss/netstat(连接状态)、bmon/iftop(网卡流量)、sar/dstat(系统负载)、tcpdump/wireshark(包级分析)。关注指标:带宽利用率、丢包率、延迟(RTT)、系统 CPU/软中断、socket TIME_WAIT/TCP_CLOSE状态数量。
例如用 iperf3 -c server -P 16 -t 60 做多流并发测试;用 ss -s 查看 TCP 状态分布;用 perf top 或 mpstat 看软中断是否成为瓶颈。记录优化前后数据以量化收益。
答:常见误区包括开启已废弃或危险的选项(如 tcp_tw_recycle 在 NAT 环境会导致连接失败,应避免);盲目增大内核缓冲导致内存耗尽;忽视 conntrack 表溢出(nf_conntrack_max 过小会丢包或阻断新连接)。如果 VPS 受防火墙或提供商 NAT 影响,调整 tcp_tw_reuse 而非 tcp_tw_recycle。
安全性方面,增大 file-max 与打开大量端口要配合防火墙策略并监控异常连接,避免 DDoS 风险。同时注意内核参数改动需逐步验证,最好在流量镜像或测试环境先行评估。