记一次虚机上传过慢问题排查

最近线上虚机有个特殊的用户反馈,用户反馈虚机从A服务器下载文件特别慢,于是scp A服务器数据到本地client,发现 只有几十K的流量。

当时第一反应怀疑是虚机负载压力比较大,但是查看虚机IO以及负载都很低。。。。

然后tcpdump抓包发现有大量重传, 虚机A mtu 1450 , 但是抓包存在 length 1466的包都重传了,理应分片为啥不分片呢?

所以还是哪块网络有问题。因为包过大内核协议栈理应理应会交给CPU做分片处理,但是tcpdump抓内核协议栈里的却没有分片,所以怀疑不是CPU做的分片,是不是网卡做的分片,所以怀疑是不是开了tso把分片卸载到网卡了,最终查看网卡参数虚机确实是开了tso了。

TSO(transimit segment offload)是针对tcp而言的,是指协议栈可以将tcp 分段的操作offload到硬件的能力,本身需要硬件的支持。当网卡具有TSO能力时,上层协议栈可以直接下发一个超过MTU数据包,而把数据包拆分的动作交给硬件去做,节省cpu资源。

所以原因是用户开了tso ,但是宿主机上网卡是基于ovs-dpdk的,但是ovs-dpdk没开启tso支持,所以导致了本次网络问题。临时解决办法让用户关了tso,后来网络就好了

通过linux命令可以查看网络接口是否支持TSO和GSO特性:
复制代码
# ethtool -k eth0
tcp-segmentation-offload: on
udp-fragmentation-offload: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: off [fixed]
tx-vlan-offload: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
通过linux命令,可以打开和关闭tso功能:
复制代码
ethtool -K eth0 tso on   
ethtool -K eth0 tso off

参考文档:

https://jimizhou.com/virtual-network

https://docs.openvswitch.org/en/latest/topics/userspace-tso/

相关推荐
网络研究院3 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest3 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_961845153 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序员mine3 天前
HTTPS-TLS加密与证书完全指南(中)
网络协议·https·ssl
程序猿阿伟3 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
之歆3 天前
现代 HTTP 客户端深度解析:Fetch 与 Axios
chrome·网络协议·http
InHand云飞小白3 天前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
森G3 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt