• Linux超实用网络篇汇总001


    1.网络性能指标:
    带宽:表示链路的最大传输速度,单位通常为b/s 即 比特/秒。
    吞吐量:表示单位时间内成功传输的数据量,单位通常为b/s or B/s。
    网络使用率:吞吐量/带宽
    延时:表示从网络请求发出到远端响应,所需要的时间延迟。需要具体看,例如TCP的握手延时,例如一个数据包往返所需要的时间RTT。
    PPS:表示以网络包为单位的传输速率。通常用来评估网络的转发能力。
    网络可用性:网络能否正常通信
    并发连接数:TCP连接数量
    丢包率:网络丢包的百分比
    重传率:重新传输的网络包比例
    
    2.网络接口配置状态信息:
    [root@VM-12-14-centos ~]# ifconfig eth0
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.0.12.14  netmask 255.255.252.0  broadcast 10.0.15.255
            inet6 fe80::5054:ff:feff:5c22  prefixlen 64  scopeid 0x20<link>
            ether 52:54:00:ff:5c:22  txqueuelen 1000  (Ethernet)
            RX packets 6106408  bytes 2017771456 (1.8 GiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 5660890  bytes 2143601056 (1.9 GiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
            
    [root@VM-12-14-centos ~]# ip -s addr show dev eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 52:54:00:ff:5c:22 brd ff:ff:ff:ff:ff:ff
        inet 10.0.12.14/22 brd 10.0.15.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::5054:ff:feff:5c22/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
        RX: bytes  packets  errors  dropped overrun mcast
        2017793689 6106677  0       0       0       0
        TX: bytes  packets  errors  dropped carrier collsns
        2143634000 5661107  0       0       0       0
    

    注意:
    1.网络接口的状态标志。
    ifconfig 输出的RUNNING,ip 输出的LOWER_UP 都表示网络是联通的。即网卡已经连接到交换机or路由器中。
    2.MTU的大小。
    默认是1500
    3.网络接口的IP地址,子网掩码,MAC地址。
    4.网络收发的字节数,包数,错误数,丢包情况。(TX和RX部分的errors,dropped,overruns,carrier,collisions不为0的时候,通常代表出现了网络I/O问题)
    4.1.errors 表示发生错误的数据包数,例如校验错误,帧同步错误。
    4.2.dropped 表示丢弃的数据包数,数据包已经收到了Ring Buffer,但内存不足等原因丢包。
    4.3.overruns 表示超限数据包数,网络I/O速度过快,导致Ring Buffer 中的数据包来不及处理(队列满)而导致的丢包。
    4.4.carrier 表示发生carrier错误的数据包数,比如双工模式不匹配,物理电缆出现问题等。
    4.5.collisions 表示碰撞数据包数。

    3.套接字信息:
    [root@VM-12-14-centos ~]# ss -ltnp | head -n 10
    State  Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
    LISTEN 0      511          0.0.0.0:8904      0.0.0.0:*    users:(("nginx",pid=2281565,fd=17),("nginx",pid=2281564,fd=17),("nginx",pid=70053,fd=17))
    LISTEN 0      300          0.0.0.0:3306      0.0.0.0:*    users:(("mysqld",pid=71017,fd=36))
    LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=2281565,fd=8),("nginx",pid=2281564,fd=8),("nginx",pid=70053,fd=8))
    LISTEN 0      128          0.0.0.0:22        0.0.0.0:*    users:(("sshd",pid=49679,fd=5))
    LISTEN 0      128             [::]:22           [::]:*    users:(("sshd",pid=49679,fd=6))
    
    

    注意:
    Recv-Q(接收队列),Send-Q(发送队列),当它们不是0的时候,要注意有没有网络包堆积的问题。
    1.当套接字连接处于Established。
    Recv-Q 表示套接字缓存还没有被应用程序取走的字节数,即接收队列长度。(如果接收队列Recv-Q一直处于阻塞状态,也就是Recv-Q值不为零并且值挺大,可能是遭受了Dos 攻击。 )
    Send-Q 表示还没有被远端主机确认的字节数,即发送队列长度。(如果看到是大量的 send-Q ,可以判定是发送数据给目的地址的时候出现了阻塞的问题,导致了包堆积在本地缓存中,不能成功发出去。那么问题就可能产生在了客户端,根据业务逻辑可以看看是不是客户端发送的TCP长连接数量过多。验证办法,尝试减少客户端和服务的长连接.查看效果。)
    2.当套接字连接处于Listening。
    Recv-Q 表示全连接队列的长度。
    Send-Q 表示全连接队列的最大长度。
    3.全连接
    指服务器收到客户端的ACK,完成TCP的三次握手,然后会把这个连接挪到全连接队列中。
    4.半连接
    指还没有完成TCP的三次握手的连接。
    ps:
    涉及到半连接队列,全连接队列溢出,堆积的问题。
    https://102.alibaba.com/detail?id=140
    https://www.jianshu.com/p/0d18a1ef32ed

    4.网络吞吐相关信息:
    [root@VM-12-14-centos ~]# sar -n DEV 1
    Linux 4.18.0-305.3.1.el8.x86_64 (VM-12-14-centos) 	2022年02月09日 	_x86_64_	(2 CPU)
    
    11时35分12秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
    11时35分13秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    11时35分13秒      eth0     15.00     15.00      1.25      3.45      0.00      0.00      0.00      0.00
    
    11时35分13秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
    11时35分14秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    11时35分14秒      eth0      2.00      4.00      0.14      1.09      0.00      0.00      0.00      0.00
    
    11时35分14秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
    11时35分15秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    11时35分15秒      eth0      3.00      5.00      0.15      0.91      0.00      0.00      0.00      0.00
    
    11时35分15秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
    11时35分16秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    11时35分16秒      eth0      1.00      3.00      0.06      0.83      0.00      0.00      0.00      0.00
    
    11时35分16秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
    11时35分17秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    11时35分17秒      eth0      1.00      3.00      0.06      0.83      0.00      0.00      0.00      0.00
    
    

    注意:
    1.rxpck/s 和 txpck/s,接收和发送的PPS,包/秒。
    2.rxkB/s 和 txkB/s,接收和发送的吞吐量,KB/秒。
    3.rxcmp/s 和 txcmp/s,接收和发送的压缩数据包数,包/秒。

    5.连通性和延时:
    [root@VM-12-14-centos ~]# ping -c 3 114.114.114.114
    PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.
    64 bytes from 114.114.114.114: icmp_seq=1 ttl=61 time=10.3 ms
    64 bytes from 114.114.114.114: icmp_seq=2 ttl=86 time=10.1 ms
    64 bytes from 114.114.114.114: icmp_seq=3 ttl=84 time=10.2 ms
    
    --- 114.114.114.114 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 10.093/10.193/10.255/0.071 ms
    
    

    注意:
    ping的输出包含俩部分
    1.每个ICMP的请求信息,ICMP序列号,TTL,往返时间延迟。
    2.ICMP多次请求的汇总信息,平均往返时延(RTT)10ms。

  • 相关阅读:
    Playwright安装及基本用法
    生成随机数、随机字符串
    xmind2testcase使用
    jmeter5.0二次开发环境搭建(IDEA)
    pytest配置文件pytest.ini
    pytest+allure2生成测试报告
    pytest生成html报告-使用pytest-html插件方式
    pytest一些简单参数
    pytest简单搭建和入门
    python3学习-元组
  • 原文地址:https://www.cnblogs.com/jason007/p/15874451.html
Copyright © 2020-2023  润新知