前言
比较宽泛地讲,网络方向的性能分析既包括主机测的网络配置查看、监控,又包括网络链路上的包转发时延、吞吐量、带宽等指标分析。
ping
ping 发送 ICMP echo 数据包来探测网络的连通性,除了能直观地看出网络的连通状况外,还能获得本次连接的往返时间(RTT 时间),丢包情况,以及访问的域名所对应的 IP 地址(使用 DNS 域名解析),比如:
我们 ping baidu.com,-c参数指定发包数。可以看到,解析到了 baidu 的一台服务器 IP 地址为 39.156.69.79。RTT (本次连接的往返时间)时间的最小、平均、最大和算术平均差分别是37.001ms、38.029ms、39.089ms 和 0.764。
ifconfig
ifconfig 命令被用于配置和显示 Linux 内核中网络接口的统计信息。通过这些统计信息,我们也能够进行一定的网络性能调优。
- ifconfig显示网络接口配置信息
其中,RX/TX packets 是对接收/发送数据包的情况统计,包括错误的包,丢掉多少包等。RX/TX bytes 是接收/发送数据字节数统计。其余还有很多参数,就不一一述说了,性能调优时可以重点关注 MTU(最大传输单元) 和txqueuelen(发送队列长度),比如可以用下面的命令来对这两个参数进行微调:
2. 网络接口地址配置
ifconfig 还常用来配置网口的地址,比如: 为网卡配置和删除 IPv6 地址:
修改MAC地址:
配置IP地址:
IP
ip 命令用来显示或设置 Linux 主机的网络接口、路由、网络设备、策略路由和隧道等信息,是 Linux 下功能强大的网络配置工具,旨在替代 ifconfig 命令,如下显示 IP 命令的强大之处,功能涵盖到 ifconfig、netstat、route 三个命令。
netstat
netstat 可以查看整个 Linux 系统关于网络的情况,是一个集多种网络工具于一身的组合工具。
常用选项包括以下几个:
- 默认:列出连接的套接字
- -a:列出所有套接字的信息
- -s:各种网络协议栈统计信息
- -i:网络接口信息
- -r:列出路由表
- -l:仅列出有在 Listen 的服务状态
- -p:显示 PID 和进程名称
各参数组合使用实例如下:
- netstat -at 列出所有 TCP 端口
- netstat -au 列出所有 UDP 端口
- netstat -lt 列出所有监听 TCP 端口的