为什么你的服务器总卡?
你有没有遇到过这种情况:网站明明代码没问题,数据库也扛得住,可用户就是反映加载慢、提交表单卡住、上传文件断线?其实问题很可能出在服务器的网络环节。不是配置越高就越快,关键得会调。
带宽与并发要匹配
很多公司一开始用100M带宽跑业务,用户量上来后发现响应变慢,第一反应是升级到1G。但如果你的应用本身是IO密集型,比如视频上传、API频繁交互,光加带宽没用,还得看连接数和并发处理能力。Linux系统默认的文件描述符限制(通常是1024)可能就成了瓶颈。
可以调整 /etc/security/limits.conf:
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1启用BBR加速TCP传输
传统TCP拥塞控制算法像CUBIC,在高延迟链路上效率不高。Google推出的BBR能显著提升传输速度,尤其适合跨地区或跨国访问的服务器。
检查当前拥塞算法:
sysctl net.ipv4.tcp_available_congestion_control开启BBR:
echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf
sysctl -p执行后用 sysctl net.ipv4.tcp_congestion_control 确认是否已切换为bbr。
CDN不只是缓存静态资源
很多人以为CDN只能放图片、JS、CSS,其实动态内容也能加速。比如通过CDN的边缘节点做TLS卸载、HTTP/2升级、甚至动态路由优化。阿里云、Cloudflare都支持动态加速功能,把用户请求自动走最优线路回源。
举个例子,你在深圳的服务器,北方用户访问延迟经常200ms以上。开了动态加速后,通过CDN中转,实际延迟可能降到80ms以内,网页打开明显更快。
合理配置防火墙与DDoS防护
iptables规则写得太复杂,每条数据包都要过十几层规则,CPU直接拉满。建议精简规则链,优先匹配高频流量,用ipset管理黑名单。
例如封禁恶意IP段:
ipset create bad_ips hash:net
echo '1.2.3.0/24' | while read ip; do ipset add bad_ips $ip; done
iptables -A INPUT -m set --match-set bad_ips src -j DROP同时开启系统级防护,如启用SYN Cookie:
net.ipv4.tcp_syncookies = 1监控不能少,问题早发现
装个简单的netdata或Prometheus+Node Exporter,实时看网卡吞吐、连接数、丢包率。有时候不是服务器慢,而是上游ISP波动。有个客户上周突然海外访问全卡,查监控才发现是跨境线路故障,换了个BGP线路立马恢复。
网络优化不是一锤子买卖,得持续观察、小步调整。别等用户投诉了才动手,那时候已经掉了一堆订单了。