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

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

ICMP 请求汇总
ICMP 请求信息
网络接口使用率
吞吐量
PPS
展示协议栈的统计信息
使用 netstat 或 ss 命令
套接字状态含义
监控接收队列和发送队列
使用 netstat 或 ss 命令
相关指标解释
使用 ifconfig 或 ip 命令
重传率
丢包率
并发连接数
可用性
接收数据包
发送数据包
网络接口层
网络层
传输层
应用层
分析网络性能问题的思路
性能指标的理解
使用 ping 测试连通性和延时
使用 sar 命令查看网络统计信息
查看协议栈信息
查看套接字信息
查看网络接口配置和状态
其他指标
PPS
延时
吞吐量
带宽
网络协议栈处理流程
TCP/IP 模型
思考
连通性和延时
网络吞吐和 PPS
协议栈统计信息
套接字信息
网络配置
性能指标
基础原理
关于 Linux 网络

该思维导图由 AI 生成,仅供参考

你好,我是倪朋飞。
上一节,我带你学习了 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网络的基本原理和性能指标,以及如何观测网络性能。首先,文章详细介绍了网络性能指标,包括带宽、吞吐量、延时、PPS等,并指出了常用的性能指标如可用性、并发连接数、丢包率等。接着,文章介绍了如何查看网络接口的配置和状态,以及如何使用ifconfig和ip命令来查看网络接口的配置信息。然后,文章介绍了如何查看套接字信息,使用netstat或ss命令来查询套接字、网络栈、网络接口以及路由表的信息。最后,文章强调了在观测网络性能时需要特别关注的指标,如网络接口的状态标志、MTU大小、网络收发的字节数、包数、错误数以及丢包情况等。此外,文章还介绍了如何使用sar命令来查看网络的统计信息,以及如何使用ping命令测试远程主机的连通性和延时。整体来说,本文内容涵盖了Linux网络的基本原理和性能指标,以及如何观测网络性能,对于想要深入了解Linux网络的读者具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Linux 性能优化实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(52)

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

    作者回复: 👍谢谢分享

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

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

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

    作者回复: 是的

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

    作者回复: 👍

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

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

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

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

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

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

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

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

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

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

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

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

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