用 ss -tuln 替代 netstat 查实时网络状态,配合 -i/-s 定位连接或重传问题;查 established 连接数、端口占用、tcp 重传率需用对应 ss 命令;调内核参数前须确认当前值、应用是否启用 so_reuseaddr 并压测验证;perf 比 strace 更准抓网络延迟热点;ethtool 显示速率不等于实际吞吐,需综合 rss、中断亲和、固件版本优化。

怎么看实时网络吞吐和连接状态
直接用 ss -tuln 替代过时的 netstat,它快、低开销、输出结构清晰。配合 -i(显示接口统计)或 -s(协议汇总)能快速定位是连接数爆了还是重传异常。
常见错误:用 iftop 看瞬时流量却没加 -P 显示端口,结果只看到 IP 不知道是哪个服务在打带宽;或者用 cat /proc/net/dev 但忽略 rx_bytes/tx_bytes 是累计值,需两次采样算差值才得真实速率。
- 查高并发 ESTABLISHED 连接:
ss -tn state established | wc -l - 查某个端口被谁占着:
ss -tulpn | grep ':8080' - 看 TCP 重传率是否异常:运行
ss -s,关注retransmitted行,超过 1% 就该查丢包或拥塞
改内核参数前必须确认的三件事
别一上来就改 /proc/sys/net/ipv4/tcp_tw_reuse 或 net.core.somaxconn,这些参数生效依赖实际负载模型,盲目调高可能引发 TIME_WAIT 泛滥、SYN 队列溢出或内存耗尽。
使用场景决定改什么:短连接密集型服务(如 HTTP API)重点调 tcp_tw_reuse 和 tcp_fin_timeout;长连接服务(如 WebSocket)更该关心 net.ipv4.tcp_keepalive_time 和连接保活策略。
- 先看当前值:
sysctl net.ipv4.tcp_tw_reuse,不是所有发行版默认开启 - 确认应用是否用了
SO_REUSEADDR,否则tcp_tw_reuse不起作用 - 改完必须验证:
sysctl -p后跑ss -s对比前后tw计数,再压测看是否真缓解了端口耗尽
用 perf 抓网络延迟热点比 strace 有效得多
strace -e trace=sendto,recvfrom 只能看到系统调用进出,但卡在哪——是软中断处理慢?网卡驱动轮询太久?还是协议栈锁竞争?得靠 perf。
Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的
典型错误是只跑 perf record -e syscalls:sys_enter_sendto,这只能抓调用入口,真正耗时往往在内核路径里。要抓上下文,得组合硬件事件和软件符号:
- 抓软中断瓶颈:
perf record -e irq:softirq_entry -g -p $(pidof nginx) - 看 TCP 发送路径耗时:
perf record -e 'tcp:*' -g -p $(pidof java) - 分析时用
perf script | stackcollapse-perf.pl | flamegraph.pl生成火焰图,重点看tcp_transmit_skb或__netif_receive_skb_core占比
ethtool 显示的 “Speed: 10000Mb/s” 不代表实际吞吐
链路协商速率只是物理层能力,真实吞吐受中断合并(rx-usecs)、RSS 队列数、CPU 绑核、PCIe 带宽限制共同影响。很多 25G 网卡在单队列 + 默认中断设置下,单流跑不满 3Gbps。
容易踩的坑:以为开了 ethtool -K eth0 tso off gso off 就能提性能,其实现代网卡反而依赖 TSO/GSO 卸载大包分段,关了反而增加 CPU 开销;还有人调高 rx/tx ring buffer 到 4096,但没配对应中断亲和,导致所有中断挤在同一个 CPU 核上打满。
- 查当前 RSS 队列数:
ethtool -l eth0,确保Current hardware settings≥ CPU 核数 - 调中断亲和:
echo f > /proc/irq/$(cat /proc/interrupts | grep eth0 | head -1 | awk '{print $1}' | sed 's/://')/smp_affinity_list(示例设前 4 核) - 验证是否生效:
watch -n1 'cat /proc/interrupts | grep eth0',观察各 CPU 列计数是否均衡增长
最常被忽略的是网卡固件版本和驱动匹配问题——同一型号网卡,不同固件对 LRO/GRO 的行为差异极大,有些版本甚至会让 GRO 合并错误帧。更新前务必查厂商 release note 里关于 “throughput regression” 的说明。










