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。

posted @ 2022-02-09 11:59  红鲤鱼绿鲤鱼驭驴  阅读(84)  评论(0编辑  收藏  举报