23
2024
08
11:19:47

TSO 介绍和操作

0. 概述

在定位网络问题的时候,MTU 这个参数经常会让我们特别关注,有时它会影响我们无法 SSH 到我们的远端服务器,有时它会让我们的网络延迟加长,甚至于有时还会让我们的服务器变卡,你以为我这里会来说 MTU,那不好意思,我不想说 MTU,我想说的是和 MTU 有关的 TSO。

如果你不知道什么是 MTU 的话,那么可以想象一下如果你有一辆小货车,核载量是 1 吨吧,然后你有 2 吨的多的货物需要运送,那么很显然,你是不可能一次性将这些货物都运完的(什么?超载?那是不可能的)。所以常见的做法就是一吨一吨地运,这么的一吨就是 MTU,但是,需要再补充一点的是,你的 MTU 不一定就是你的承载量,例如,你只是一个转运的工人,你需要把货物运给另外一个运送的人,但是那个人的货车却只能装载 800 KG,那么你就不能一次性运过去一吨的货物了,不然你剩下 200 KG放在原地吗?这个时候你的 MTU 又变成 800 KG 了,所以 MTU 是可以根据实际情况变化的,但是前提就是减少中间环节的卡顿,也就是不要产生货物堆积。

MTU 就简短得介绍完了,那么什么是 TSO 呢,TSO 的全称是 TCP segmentation Offload,中文叫:TCP段卸载,算了,还是忘记中文翻译吧,记住英文就好了;是的,有 TCP 也有 UDP 的 USO,原理类似,不多赘述。TSO 的作用在于减轻 CPU 的负担,将货物的分割工作交给网卡来完成。

例如,我们要传输一个 20M 的数据,因为 MTU 的存在,我们每次最多传输 1500-20 = 1480 bytes,那么就需要将数据分割成 N 份 1480 bytes,那么如果这个工作让 CPU 来做,有点浪费 CPU 的资源,于是就出现了 TSO,直接将数据交给网卡驱动,让网卡驱动去完成分割工作,从而达到减轻 CPU 工作的目的,就是这么简单。

1. 实操

查看 TSO 是否开启:

root@liqiang.io:~# ethtool --show-offload wlp3s0Features for wlp3s0:... ...tcp-segmentation-offload: off    tx-tcp-segmentation: off [fixed]    tx-tcp-ecn-segmentation: off [fixed]    tx-tcp-mangleid-segmentation: off [fixed]    tx-tcp6-segmentation: off [fixed]udp-fragmentation-offload: offgeneric-segmentation-offload: on... ...

这里的第一段就可以看出来,我的系统是没有开启 TSO 的。

2. 开启关闭 TSO

2.1 开启 TSO

root@liqiang.io:~# ethtool -K eth0 tso onroot@liqiang.io:~# ethtool -K eth0 gso on

注意,这里没有开启 gso,只开启 tso 是没用的,因为只有开启了 gso 才会检测是否支持 tso。

2.2 关闭 TSO

root@liqiang.io:~# ethtool -K eth0 tso offroot@liqiang.io:~# ethtool -K eth0 gso off

3. 验证 TSO

如果开启了 TSO,使用 tcpdump 分析网络流量看到的数据是不一样的,下面给个对比。

  • 开启 TSO

  • 关闭 TSO

4. Ref

  • linux-tso-tcp-segmentation-offload-what-it-means-and-how-to-enable-disable-it-t19721.html" style="background-color: transparent; color: rgb(95, 191, 94); opacity: 1; text-decoration-line: none; padding-bottom: 0.1em; border-bottom: 1px dashed rgba(70, 185, 128, 0.5);">Linux tso (tcp segmentation offload) - what it means and how to enable/disable it




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/7752.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: