Linux中如何进行网络性能分析

发布时间:2021-12-24 14:25:48 作者:小新
来源:亿速云 阅读:661

这篇文章主要为大家展示了“Linux中如何进行网络性能分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中如何进行网络性能分析”这篇文章吧。

比较宽泛地讲,网络方向的性能分析既包括主机测的网络配置查看、监控,又包括网络链路上的包转发时延、吞吐量、带宽等指标分析。包括但不限于以下分析工具:

本文先来看前面 7 个。

ping

ping 发送 ICMP echo 数据包来探测网络的连通性,除了能直观地看出网络的连通状况外,还能获得本次连接的往返时间(RTT  时间),丢包情况,以及访问的域名所对应的 IP 地址(使用 DNS 域名解析),比如:

Linux中如何进行网络性能分析

我们 ping baidu.com,-c 参数指定发包数。可以看到,解析到了 baidu 的一台服务器 IP 地址为  220.181.112.244。RTT 时间的平均和算术平均差分别是 40.732ms、40.762ms、40.791ms 和 0.248。

ifconfig

ifconfig 命令被用于配置和显示 Linux 内核中网络接口的统计信息。通过这些统计信息,我们也能够进行一定的网络性能调优。

Linux中如何进行网络性能分析

1)ifconfig 显示网络接口配置信息

其中,RX/TX packets 是对接收/发送数据包的情况统计,包括错误的包,丢掉多少包等。RX/TX bytes  是接收/发送数据字节数统计。其余还有很多参数,就不一一述说了,性能调优时可以重点关注 MTU 和  txqueuelen(发送队列长度),比如可以用下面的命令来对这两个参数进行微调:

ifconfig eth0 txqueuelen 2000 ifconfig eth0 mtu 1500

2)网络接口地址配置

ifconfig 还常用来配置网口的地址,比如:

为网卡配置和删除IPv6地址:

ifconfig eth0 add 33ffe:3240:800:1005::2/64 #为网卡eth0配置IPv6地址 ifconfig eth0 del 33ffe:3240:800:1005::2/64 #为网卡eth0删除IPv6地址

修改MAC地址:

ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE

配置IP地址:

ifconfig eth0 192.168.2.10 ifconfig eth0 192.168.2.10 netmask 255.255.255.0 ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255

IP

ip 命令用来显示或设置 Linux 主机的网络接口、路由、网络设备、策略路由和隧道等信息,是 Linux 下功能强大的网络配置工具,旨在替代  ifconfig 命令,如下显示 IP 命令的强大之处,功能涵盖到 ifconfig、netstat、route 三个命令。

Linux中如何进行网络性能分析

netstat

netstat 可以查看整个 Linux 系统关于网络的情况,是一个集多钟网络工具于一身的组合工具。

常用的选项包括以下几个:

各参数组合使用实例如下:

1)netstat 默认显示连接的套接字数据

Linux中如何进行网络性能分析

整体上来看,输出结果包括两个部分:

2)netstat -i 显示网络接口信息

Linux中如何进行网络性能分析

接口信息包括网络接口名称(Iface)、MTU,以及一系列接收(RX-)和传输(TX-)的指标。其中 OK 表示传输成功的包,ERR 是错误包,DRP  是丢包,OVR 是超限包。

这些参数有助于我们对网络收包情况进行分析,从而判断瓶颈所在。

3)netstat -s 显示所有网络协议栈的信息

Linux中如何进行网络性能分析

可以看到,这条命令能够显示每个协议详细的信息,这有助于我们针对协议栈进行更细粒度的分析。

4)netstat -r 显示路由表信息

Linux中如何进行网络性能分析

这条命令能够看到主机路由表的一个情况。当然查路由我们也可以用 ip route 和 route 命令,这个命令显示的信息会更详细一些。

ifstat

ifstat 主要用来监测主机网口的网络流量,常用的选项包括:

比如,通过以下命令统计主机所有网口某一段时间内的流量数据:

Linux中如何进行网络性能分析

可以看出,分别统计了三个网口的流量数据,前面输出的时间戳,有助于我们统计一段时间内各网口总的输入、输出流量。

netcat

netcat,简称 nc,命令简单,但功能强大,在排查网络故障时非常有用。

它主要被用来构建网络连接。可以以客户端和服务端的方式运行,当以服务端方式运行时,它负责监听某个端口并接受客户端的连接,因此可以用它来调试客户端程序;当以客户端方式运行时,它负责向服务端发起连接并收发数据,因此也可以用它来调试服务端程序,此时它有点像  Telnet 程序。

常用的选项包括以下几种:

下面举一个简单的例子,使用 nc 命令发送消息:

首先,启动服务端,用 nc -l 0.0.0.0 12345 监听端口 12345 上的所有连接。

Linux中如何进行网络性能分析

然后,启动客户端,用 nc -p 1234 127.0.0.1 12345 使用 1234 端口连接服务器 127.0.0.1::12345。

Linux中如何进行网络性能分析

接着就可以在两端互发数据了。这里只是抛砖引玉,更多例子大家可以多实践。

tcpdump

tcpdump是一个强大的网络抓包工具。虽然有 wireshark 这样更易使用的图形化抓包工具,但 tcpdump  仍然是网络排错的必备利器。

tcpdump 选项很多,我就不一一列举了,大家可以看文章末尾的引用来进一步了解。这里列举几种 tcpdump 常用的用法。

1)捕获某主机的数据包

比如想要捕获主机 200.200.200.100 上所有收到和发出的所有数据包,使用:

tcpdump host 200.200.200.100

2)捕获多个主机的数据包

比如要捕获主机 200.200.200.1 和主机 200.200.200.2 或 200.200.200.3 的通信,使用:

tcpdump host 200.200.200.1 and (200.200.200.2 or )

同样要捕获主机 200.200.200.1 除了和主机 200.200.200.2 之外所有主机通信的 IP 包。使用:

tcpdump ip host 200.200.200.1 and ! 200.200.200.2

3)捕获某主机接收或发出的某种协议类型的包

比如要捕获主机 200.200.200.1 接收或发出的 Telnet 包,使用:

tcpdump tcp port 23 host 200.200.200.1

4)捕获某端口相关的数据包

比如捕获在端口 6666 上通过的包,使用:

tcpdump port 6666

5)捕获某网口的数据包

比如捕获在网口 eth0 上通过的包,使用:

tcpdump -i eth0

以上是“Linux中如何进行网络性能分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. linux 性能分析
  2. 如何进行性能分析profiling

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:linux vi编辑器使用方法有哪些

下一篇:linux中如何删除用户组

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》