想要给服务器压测的时候占用了多少公网带宽,根据压力测试情况,看要不要升级 一下带宽,升级多少带宽。所以找了几个工具来测试一下。
刚开始用的是sar命令,发现sar命令显示的是网卡流量,不能过滤公网流量;所以换成了iftop , iftop可以通过端口过滤出某个端口占用的带宽。
具体操作就是
iftop -i eth0 -P
通过l,打开屏幕过滤功能,输入https,过滤出443端口占用的带宽。
sar命令
使用sar来监控网络流量的常用命令如下所示。
sar -n DEV [interval] [count]
说明
[interval]表示统计间隔,[count]表示统计次数。
sar -n DEV 1 5
显示结果主要字段说明
- IFACE:网络接口名称。
- rxpck/s、txpck/s:每秒接收或发送的数据包数量。
- rxkB/s、txkB/s:每秒接收或发送的字节数,以kB/s为单位。
- rxcmp/s、txcmp/s:每秒接收或发送的压缩过的数据包数量。
- rxmcst/s:每秒接收到的多播数据包。
命令执行后会列出每个网卡5次的平均数据取值,根据实际情况来确定带宽跑满的网卡名称,对于ECS实例来说,通常内网网卡为eth0,外网网卡为eth1。
iftop命令
可以检测端口流量占用信息。
iftop [-i interface]
interface表示网络接口名,比如eth0、eth1等。如果不通过-i参数指定接口名,则默认检测第一块网卡的使用情况。
使用示例
安装iftop流量监控工具。
yum install iftop -y
查看详细端口流量占用情况。
iftop -i eth0 -P
说明
-P参数会显示请求端口。
系统显示类型如下,58690端口占用流量最大。
查看端口对应的进程。
netstat -tunlp |grep [$Port]
说明
[$Port]为上一步查看的端口。
显示结果主要字段说明
- 第①部分:带宽使用情况。
- 第②部分:外部连接列表,即记录了哪些IP正在和本机的网络连接。
- 右侧部分是实时流量信息,分别是该访问IP连接到本机2秒、10秒和40秒的平均流量。
- 第③部分。
- 第一列:TX表示发送流量,RX表示接收流量,TOTAL表示总流量。
- 第二列cum:表示第一列各种情况的总流量。
- 第三列peak:表示第一列各种情况的流量峰值。
- 第四列rates:表示第一列各种情况2秒、10秒、40秒内的平均流量。
常见操作命令参数说明
进入iftop界面后,可以通过按下相应的字母快捷按键,来对显示结果进行调整。
- h:切换是否显示帮助。
- n:切换显示本机的IP或主机名。
- s:切换是否显示本机的host信息。
- d:切换是否显示远端目标主机的host信息。
- t:切换显示格式为2行、1行、只显示发送流量或只显示接收流量。
- N:切换显示端口号或端口服务名称。
- S:切换是否显示本机的端口信息。
- D:切换是否显示远端目标主机的端口信息。
- p:切换是否显示端口信息。
- P:切换暂停或继续显示。
- b:切换是否显示平均流量图形条。
- B:切换计算2秒或10秒或40秒内的平均流量。
- T:切换是否显示每个连接的总流量。
- l:打开屏幕过滤功能,输入要过滤的字符。比如输入相应IP地址,回车后,屏幕就只显示这个IP相关的流量信息。
- L:切换显示画面上边的刻度,刻度不同,流量图形条会有变化。
- j或k:向上或向下滚动屏幕显示的连接记录。
- 1或2或3:根据右侧显示的三列流量数据进行排序。
- <:根据左边的本机名或IP排序。
- >:根据远端目标主机的主机名或IP排序。
- o:切换是否固定只显示当前的连接。
- f:编辑过滤代码。
- !:调用Shell命令。
- q:退出。