1.1 明确目标:确保低延迟、稳定带宽、快速并发处理与抗DDoS能力。
1.2 环境准备:在目标服务器安装SSH、sudo权限、常用工具(ss、iftop、iproute2、tcpdump、ethtool、iperf3、sysstat、netdata或node_exporter)。
2.1 先跑基线测试:用iperf3测BPS/PPS,mtr/tracepath测延迟与丢包。
2.2 部署采集:建议Prometheus + node_exporter + Grafana,或使用Zabbix/Netdata。采集核心指标:CPU、load、内存、磁盘IO、网络流量(Bps/Pps)、连接数、SYN队列、conntrack、丢包与延迟。
3.1 查看当前连接与端口占用:ss -tnp | head;ss -s查看socket摘要。
3.2 监测流量与PPS:iftop或nload查看实时Bps,cat /proc/net/dev定期采样;使用tcpdump -n -i eth0 'tcp' -c 10000分析包类型。
4.1 修改前备份:cp /etc/sysctl.conf /etc/sysctl.conf.bak。
4.2 推荐参数(临时生效用sysctl -w):net.core.somaxconn=65535; net.ipv4.tcp_max_syn_backlog=40960; net.ipv4.ip_local_port_range="1024 65535"; net.ipv4.tcp_tw_reuse=1; net.netfilter.nf_conntrack_max=131072。
4.3 永久写入:将以上参数追加到/etc/sysctl.conf并sysctl -p。
5.1 调整worker和连接数:worker_processes auto; worker_connections 65536; keepalive_timeout 15。
5.2 打开sendfile、tcp_nopush、tcp_nodelay以减少CPU与延迟;调高ulimit: ulimit -n 200000并写入系统配置。
5.3 对高并发接口使用缓存、限流(limit_req)与后端连接池,避免短时连接风暴。
6.1 NIC设置:使用ethtool -K eth0 gro off gso off tso off(根据实际测试决定开关),ethtool -G调整rx/tx环形缓冲区。
6.2 IRQ亲和:cat /proc/interrupts 找到网卡中断,使用irqbalance或手动echo到smp_affinity调整,让网卡负载均衡到多核。
问:如何判定是带宽瓶颈还是连接数/CPU瓶颈?
答:同时采集Bps/Pps、CPU利用率、netstat/ss连接数。若Bps接近链路峰值且PPS高而CPU低则带宽瓶颈;若CPU或软中断占用高且PPS低则CPU处理或中断分配问题;若大量TIME_WAIT或SYN_RECV则是连接数或TCP栈配置问题。
问:遇到短时大量SYN攻击如何快速缓解?
答:立即启用syn cookies(sysctl net.ipv4.tcp_syncookies=1)、提高tcp_max_syn_backlog、在防火墙层用iptables/nftables限速(如connlimit或hashlimit),并联系机房/高防厂商开启清洗或流量转发到高防清洗池。
问:如何设置告警阈值和自动化响应?
答:基于基线设阈值(如CPU>80%持续5min、连接数>基线1.5倍、丢包率>1%),在Prometheus里配置Alertmanager。自动化响应可用Ansible脚本或Webhook触发:动态调整sysctl、短期限流、或调用高防API切换清洗策略。