1.Linux的性能指标

  • 带宽:表示链路的最大传输速率,单位 b/s
  • 吞吐量:表示单位时间内成功传输的数量,单位 b/s;吞吐量受带宽限制,而吞吐量/带宽,也就是网络的使用率
  • 延时:表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟。
  • PPS:是Packet Per Second(包/秒)的缩写,表示以网络包为单位的传输速率

2.网络配置

查看网络接口的配置和状态

  1. ifconfig
1
2
3
4
5
6
7
8
9
$ ifconfig eth0
# 打印
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 9757  bytes 13002308 (13.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5442  bytes 299138 (299.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.ip

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ ip -s addr show dev eth0
# 打印
7: eth0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast
    13003218   9770     0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    299138     5442     0       0       0       0
  • 网络状态:ifconfig的(RUNNING)、ip的(LOWER_UP)表示物理网络是连通的
  • MTU默认是1500
  • 网络接口的IP地址、子网掩码
  • 网络收发的字节数、包数、错误数以及丢包情况,特别是 TX 和 RX 部分的 errors、dropped、overruns、carrier 以及 collisions 等指标不为 0 时,通常表示出现 了网络 I/O 问题。

3.套接字信息

网络协议栈中的统计信息

1.netstat

1
2
3
4
$ netstat -nlp | head -n 3
# 打印
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

2.ss

1
2
3
$ ss -ltnp | head -n 3
# 打印
State   Recv-Q   Send-Q     Local Address:Port     Peer Address:Port  Process
  • 当套接字处于连接状态(Established)时
    • Recv-Q 表示套接字缓冲还没有被应用程序取走的字节数(即接收队列长度)
    • Send-Q 表示还没有被远端主机确认的字节数(即发送队列长度)
  • 套接字处于监听状态(Listening)时
    • Recv-Q 表示 syn backlog 的当前值
    • Send-Q 表示最大的 syn backlog 值

协议栈统计信息

1
$ netstat -s
1
$ ss -s

4.网络吞吐和PPS

1
2
3
4
5
6
# 数字 1 表示每隔 1 秒输出一组数据 
$ sar -n DEV 1

# 打印
13:21:40 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcs
13:21:41  eth0 18.00   20.00   5.79   4.25    0.00   0.00   0
  • rxpck/s 和 txpck/s 分别是接收和发送的 PPS,单位为包 / 秒。
  • rxkB/s 和 txkB/s 分别是接收和发送的吞吐量,单位是 KB/ 秒。
  • rxcmp/s 和 txcmp/s 分别是接收和发送的压缩数据包数,单位是包 / 秒。
  • %ifutil 是网络接口的使用率,即半双工模式下为 (rxkB/s+txkB/s)/Bandwidth,而全双工模式下为 max(rxkB/s, txkB/s)/Bandwidth。

5.连通性和延时

1
2
# -c3 表示发送三次 ICMP 包后停止
$ ping -c3 114.114.114.114