Linux 性能优化实战
倪朋飞
资深 Linux 专家,Kubernetes 项目维护者
85429 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 65 讲
结束语 (1讲)
Linux 性能优化实战
15
15
1.0x
00:00/00:00
登录|注册

34 | 关于 Linux 网络,你必须知道这些(下)

你好,我是倪朋飞。
上一节,我带你学习了 Linux 网络的基础原理。简单回顾一下,Linux 网络根据 TCP/IP 模型,构建其网络协议栈。TCP/IP 模型由应用层、传输层、网络层、网络接口层等四层组成,这也是 Linux 网络栈最核心的构成部分。
应用程序通过套接字接口发送数据包时,先要在网络协议栈中从上到下逐层处理,然后才最终送到网卡发送出去;而接收数据包时,也要先经过网络栈从下到上的逐层处理,最后送到应用程序。
了解 Linux 网络的基本原理和收发流程后,你肯定迫不及待想知道,如何去观察网络的性能情况。具体而言,哪些指标可以用来衡量 Linux 的网络性能呢?

性能指标

实际上,我们通常用带宽、吞吐量、延时、PPS(Packet Per Second)等指标衡量网络的性能。
带宽,表示链路的最大传输速率,单位通常为 b/s (比特 / 秒)。
吞吐量,表示单位时间内成功传输的数据量,单位通常为 b/s(比特 / 秒)或者 B/s(字节 / 秒)。吞吐量受带宽限制,而吞吐量 / 带宽,也就是该网络的使用率。
延时,表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟。在不同场景中,这一指标可能会有不同含义。比如,它可以表示,建立连接需要的时间(比如 TCP 握手延时),或一个数据包往返所需的时间(比如 RTT)。
PPS,是 Packet Per Second(包 / 秒)的缩写,表示以网络包为单位的传输速率。PPS 通常用来评估网络的转发能力,比如硬件交换机,通常可以达到线性转发(即 PPS 可以达到或者接近理论最大值)。而基于 Linux 服务器的转发,则容易受网络包大小的影响。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Linux 性能优化实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(52)

  • 最新
  • 精选
  • 分清云淡
    小狗同学问到: 老师,您好 ss —lntp 这个 当session处于listening中 rec-q 确定是 syn的backlog吗? A: Recv-Q为全连接队列当前使用了多少。 中文资料里这个问题讲得最明白的文章:https://mp.weixin.qq.com/s/yH3PzGEFopbpA-jw4MythQ

    作者回复: 👍谢谢分享

    6
    35
  • Days
    老师春节不休息,大赞啊,老师可否讲解一下一个包从网卡接收,发送在内核协议栈的整个流程,这样性能分析的时候,更好的理解数据包阻塞在哪里?

    作者回复: 这些在后面的案例中会涉及

    14
  • [小狗]
    老师,您好 ss —lntp 这个 当session处于listening中 rec-q 确定是 syn的backlog吗? 我之前都是当做全队列的长度

    作者回复: 是的

    3
    8
  • code2
    每期读两遍,看看别人怎么做!

    作者回复: 👍

    5
  • Gaoyc
    通过ifconfig和ss看到的错误包或丢弃包等的一些错误是累加的嘛?是否可以清空这些错误包信息?

    作者回复: 是的,都是累加值,所以不建议清空这些统计信息。并且,真正要清的化,也需要停止网卡并且卸载(rmmod)网卡内核模块,这在实际环境中通常是不允许的。

    3
  • zhoufeng
    老师好,再请教一个问题,查看max_syn_backlog值为2048,表示同时最大只能接受2048个请求吗? # cat /proc/sys/net/ipv4/tcp_max_syn_backlog 2048

    作者回复: 不是,这只是半连接的最大数量

    2
  • zhoufeng
    老师好, “当套接字处于listen状态时,使用ss命令看到的Send-Q表示最大的syn_backlog值” 但是和/proc/sys/net/ipv4/tcp_max_syn_backlog 查看到的值不一致,是我理解错了吗? 谢谢

    作者回复: 前一个是套接字级的,后一个是系统级的

    2
  • MJ
    老师,有一事疑惑,希望帮忙解惑。 一台64个千兆端口的交换机,全双工模式,交换容量计算:64*1000*2 包转发速率计算:64*1.488Mpp 交换容量有个乘以2,为什么包转发速率不需要乘以2? (我理解,端口速率1000bps,在全双工模式下,按照双向速率计算,即总速率是2000bps)

    作者回复: 嗯嗯,说转发性能的时候一般都是指一个方向的

    2
  • 好好学习
    eth0: flags=4163 这个什么意思,有点好奇

    作者回复: 网络接口的一些标志,含义在尖括号中

    2
  • xfan
    Speed 有的通过ethtool查不到,是什么原因呢,那查不到的话,默认值是多少呢

    作者回复: 可能跟网卡状态和驱动有关,可以试试先配置好 IP 并开启网卡后再查看

    2
收起评论
显示
设置
留言
52
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部