• Linux相关


    ⽹络的性能指标

    Linux ⽹络协议栈是根据 TCP/IP 模型来实现的, TCP/IP 模型由应⽤层、传输层、⽹络层和⽹络接⼝层,共四层组成,每⼀层都有各⾃的职责。

    基本指标:

    • 带宽,表示链路的最⼤传输速率,单位是 b/s (⽐特 / 秒),带宽越⼤,其传输能⼒就越强。
    • 延时,表示请求数据包发送后,收到对端响应,所需要的时间延迟。不同的场景有着不同的含义,⽐如可以表示建⽴ TCP 连接所需的时间延迟,或⼀个数据包往返所需的时间延迟。
    • 吞吐率,表示单位时间内成功传输的数据量,单位是 b/s(⽐特 / 秒)或者 B/s(字节 / 秒),吞吐受带宽限制,带宽越⼤,吞吐率的上限才可能越⾼。
    • PPS,全称是 Packet Per Second(包 / 秒),表示以⽹络包为单位的传输速率,⼀般⽤来评估系统对于⽹络的转发能⼒。

    其他指标:

    • ⽹络的可⽤性,表示⽹络能否正常通信;
    • 并发连接数,表示 TCP 连接数量;
    • 丢包率,表示所丢失数据包数量占所发送数据组的⽐率;
    • 重传率,表示重传⽹络包的⽐例;

    网络配置查看

    可以使⽤ ifconfig 或者 ip 命令来查看
    ifconfig 属于 net-tools 软件包, ip 属于iproute2 软件包,我的印象中 net-tools 软件包没有⼈继续维护了,⽽ iproute2 软件包是有开发者依然在维护,所以更推荐你使⽤ ip ⼯具。
    使⽤这两个命令,来查看⽹⼝ eth0 的配置等信息
     

    信息解读:

    • 第⼀,⽹⼝的连接状态标志。其实也就是表示对应的⽹⼝是否连接到交换机或路由器等设备,如果
    • ifconfig 输出中看到有 RUNNING ,或者 ip 输出中有 LOWER_UP ,则说明物理⽹路是连通的,如果看不到,则表示⽹⼝没有接⽹线。
    • 第⼆, MTU ⼤⼩。默认值是 1500 字节,其作⽤主要是限制⽹络包的⼤⼩,如果 IP 层有⼀个数据报要传,⽽且数据帧的⻓度⽐链路层的 MTU 还⼤,那么 IP 层就需要进⾏分⽚,即把数据报分成⼲⽚,这样每⼀⽚就都⼩于 MTU。事实上,每个⽹络的链路层 MTU 可能会不⼀样,所以你可能需要调⼤或者调⼩ MTU的数值。
    • 第三,⽹⼝的 IP 地址、⼦⽹掩码、 MAC 地址、⽹关地址。这些信息必须要配置正确,⽹络功能才能正常⼯作。
    • 第四,⽹路包收发的统计信息。通常有⽹络收发的字节数、包数、错误数以及丢包情况的信息,如果 TX(发送) 和 RX (接收) 部分中 errors、 dropped、 overruns、 carrier 以及 collisions 等指标不为 0 时,则说明⽹络发送或者接收出问题了,这些出错统计信息的指标意义如下:

            errors 表示发⽣错误的数据包数,⽐如校验错误、帧同步错误等;

            dropped 表示丢弃的数据包数,即数据包已经收到了 Ring Buffer(这个缓冲区是在内核内存中,更具体⼀点是在⽹卡驱动程序⾥),但因为系统内存不⾜等原因⽽发⽣的丢包;

            overruns 表示超限数据包数,即⽹络接收/发送速度过快,导致 Ring Buffer 中的数据包来不及处理,⽽导致的丢包,因为过多的数据包挤压在 Ring Buffer,这样 Ring Buffer 很容易就溢出了;

            carrier 表示发⽣ carrirer 错误的数据包数,⽐如双⼯模式不匹配、物理电缆出现问题等;

            collisions 表示冲突、碰撞数据包数;

    socket信息查看

    可以使⽤ netstat 或者 ss ,这两个命令查看 socket、⽹络协议栈、⽹⼝以及路由表的信息。
    如果在⽣产环境中要查看这类信息的时候,尽量不要使⽤ netstat 命令,因为它的性能不好,在系统⽐较繁忙的情况下,如果频繁使⽤ netstat 命令则会对性能的开销雪上加霜,所以更推荐你使⽤性能更好的 ss 命令。

    网络吞吐率和PPS查看

    可以使⽤ sar 命令当前⽹络的吞吐率和 PPS,⽤法是给 sar 增加 -n 参数就可以查看⽹络的统计信
    息,⽐如:

    • sar -n DEV,显示⽹⼝的统计数据;
    • sar -n EDEV,显示关于⽹络错误的统计数据;
    • sar -n TCP,显示 TCP 的统计数据
       

    • rxpck/s 和 txpck/s 分别是接收和发送的 PPS,单位为包 / 秒。
    • rxkB/s 和 txkB/s 分别是接收和发送的吞吐率,单位是 KB/ 秒。
    • rxcmp/s 和 txcmp/s 分别是接收和发送的压缩数据包数,单位是包 / 秒。
       

    如何从⽇志分析 PV、 UV

    要分析⽇志的时候,先⽤ ls -lh 命令查看⽇志⽂件的⼤⼩,如果⽇志⽂件⼤⼩⾮常⼤,最好不要在
    线上环境做。
     

    如果⽇志⽂件数据量太⼤,你直接⼀个 cat 命令⼀执⾏,是会影响线上环境,加重服务器的负载,严重的话,可能导致服务器⽆响应
     

    当发现⽇志很⼤的时候,我们可以使⽤ scp 命令将⽂件传输到闲置的服务器再分析, scp 命令使⽤⽅式如下图:

    慎用cat命令

    cat 命令是⽤来查看⽂件内容的,但是⽇志⽂件数据量有多少,它就读多少,很显然不适⽤
    ⼤⽂件。
    对于⼤⽂件,⽤ less 命令去读⽂件⾥的内容,因为 less 并不会加载整个⽂件,⽽是按需加载,先是输出⼀⼩⻚的内容,当你要往下看的时候,才会继续加载。

  • 相关阅读:
    react数据管理之setState与Props
    Coelho2021_GMGCv1 计算丰度的方法
    Typora Mac版本安装Pandoc导出文件为word格式(windows可通用)
    java 实现线程间通信
    微信小程序_8,视图与逻辑
    图观 | 快速评估图数据库何时适合使用?
    jenkins定时任务
    如何在java中将日期时间设置为一天结束
    隐私计算迎来千亿级风口,一文讲清它的技术理论基础
    Prometheus+Grafana普罗米修斯搭建+监控MySQL
  • 原文地址:https://blog.csdn.net/qq_49444793/article/details/139789537