前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux下流量分析工具

linux下流量分析工具

作者头像
dogfei
发布2020-07-31 10:55:06
4.3K0
发布2020-07-31 10:55:06
举报
文章被收录于专栏:devops探索

介绍

在日常的运维工作中,我们经常需要去关注网卡流量的使用情况,看是否处于正常的使用范围内,如果入网或者出网有异常升高或者降低,我们都要及早的去发现,来进行评估是否处于异常状态,而去发现这个异常,就需要我们熟悉常用的流量分析查看工具,例如我们这里要讲的六大工具(不分排名先后)

  • nload
  • iftop
  • bmon
  • sar
  • iptraf
  • dstat

接下来我们分别看下这几个工具的使用方法

nload使用

nload工具是通过读取/proc/net/dev文件,以获得流量统计信息,nload是一个命令行工具,让用户可以分开来监控入站和出站的流量,它还可以绘制图表以显示入站流量和出站流量,如果我们需要看带宽的总体情况,不需要看每个进程的详细情况,nload便很方便了

1)安装方法

1

yum -y install nload

2)参数介绍

1 2 3 4 5

-a: 指定全部数据的刷新时间,单位是秒,默认是300秒 -i: 进入网卡的流量图的显示比例最大值设置 -m: 不显示流量图,只显示统计数据 -t: 显示数据的刷新时间间隔,单位是毫秒,默认500 -u: 设置curr,avg,min,max的数据单位,默认是自动的,h|b|k|m|g|H|B|K|M|G

3)示例

1

nload -t 200 -i 1024 -o 128 -U M</code>

img_5b9f42aeab159-8b927ebb-8a82-4c36-ab74-be90fb584fd0
img_5b9f42aeab159-8b927ebb-8a82-4c36-ab74-be90fb584fd0

一般情况下,默认不适用参数就可以了

iftop使用

iftop是类似与top的实时流量监控工具,我们可以使用iftop来监控网卡的实时流量,可以指定网段,反向解析IP,显示端口等信息

1)安装

1

yum -y install iftop

2)参数介绍

iftop界面相关说明:

1 2 3 4 5 6 7

<= =>这两个箭头代表的是流量的流出和流入方向 TX: 发送流量 RX: 接收流量 TOTAL: 总流量 Cumm: 运行iftop到目前为止的总流量 peak: 流量峰值 rates: 分别表示过去2s,10s,40s的平均流量

iftop相关参数:

1 2 3 4 5

-i: 指定监测的网卡 -B: 以bytes为单位显示流量,默认是按位(bits) -n: 使host信息默认直接显示IP -N: 使端口信息默认直接显示端口号 -F: 显示特定网段的进出流量,例如:iftop -F 10.10.1.0/24

进入iftop界面后的命令操作:

1 2 3 4 5 6 7 8 9 10 11 12

按h切换帮助信息 按n切换显示本机的IP或主机名 按s切换是否显示本机的host信息 按d切换是否显示远端目标主机的host信息 按N显示端口号或端口服务名称 按S切换是否显示本机的端口信息 按D切换是否显示远端目标主机的端口信息 按p切换是否显示端口信息 按P切换暂停或继续 按b显示平均流量图形条 按T显示每个连接的总流量 按j或k可以向上或向下翻滚屏幕

bmon使用

bmon是unix系统中一个基于文本,简单但非常强大的网络监视和调试工具,它能抓取网络相关统计信息并把它们以用户友好的格式展现出来

1)安装

1

yum -y install https://mirrors.aliyun.com/epel/7/x86_64/Packages/b/bmon-3.6-1.el7.x86_64.rpm

2)参数介绍

bmon界面参数介绍

1 2

RX: 表示每秒接收数据 TX: 表示每秒发送数据

img_5b9f42aeaf136-3cd4aec0-81c6-42b5-b427-b8d843cf6846
img_5b9f42aeaf136-3cd4aec0-81c6-42b5-b427-b8d843cf6846

bmon使用非常简单,提示也非常友好,可以根据提示或者使用bmon -h来查看使用帮助

sar使用

sar可以对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态,可以对文件的读写情况,系统调用的使用情况,串口,CPU效率,内存使用情况,进程活动等进行监控

1)安装

1

yum -y install sysstat

2)参数介绍

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

sar [options] [-A] [-o file] t [n] t: 采样间隔 n: 采样次数 -o: 将结果以二进制格式存放在文件中 -A: 所有报告的总和 -u: 输出CPU使用情况的统计信息 -v: 输出inode、文件和其他内核表的统计信息 -d: 输出每一个快设备的活动信息 -r: 输出内存和交换空间的统计信息 -b: 显示I/O和传送速率的统计信息 -a: 文件读写情况 -c:输出进程统计信息,每秒创建的进程数 -R: 输出内存页面的统计信息 -y: 终端设备的活动情况 -w: 输出系统交换活动信息

3)示例

监控网络情况:

1

sar -n { DEV | EDEV | NFS | NFSD | SOCK | ALL }

sar 提供六种不同的语法选项来显示网络信息。

1 2 3 4 5 6 7

-n选项使用6个不同的开关: DEV | EDEV | NFS | NFSD | SOCK | ALL DEV显示网络接口信息; EDEV显示关于网络错误的统计数据; NFS统计活动的NFS客户端的信息; NFSD统计NFS服务器的信息; SOCK显示套接字信息; ALL显示所有5个开关。它们可以单独或者一起使用

例如监控网卡情况:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

sar -n DEV 3 2 # sar -n DEV 3 2 Linux 3.10.0-693.2.2.el7.x86_64 (blog_site)     08/12/2018      _x86_64_        (1 CPU) 01:23:29 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s 01:23:32 PM      eth0      1.00      1.34      0.05      0.49      0.00      0.00      0.00 01:23:32 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00 01:23:32 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00 01:23:32 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s 01:23:35 PM      eth0      0.33      0.33      0.02      0.03      0.00      0.00      0.00 01:23:35 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00 01:23:35 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00 Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s Average:         eth0      0.67      0.84      0.04      0.26      0.00      0.00      0.00 Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00 Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00 rxpck/s:每秒钟接收的数据包 txpck/s:每秒钟发送的数据包 rxbyt/s:每秒钟接收的字节数 txbyt/s:每秒钟发送的字节数 rxcmp/s:每秒钟接收的压缩数据包 txcmp/s:每秒钟发送的压缩数据包 rxmcst/s:每秒钟接收的多播数据包

监控CPU

#每10秒采样依次,连续采样3次

1 2 3 4 5 6 7 8 9 10 11 12 13 14

# sar -u -o test 10 3 Linux 3.10.0-693.2.2.el7.x86_64 (blog_site)     08/12/2018      _x86_64_        (1 CPU) 01:05:06 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle 01:05:16 PM     all      0.20      0.00      0.20      0.00      0.00     99.60 01:05:26 PM     all      0.20      0.00      0.20      0.00      0.00     99.60 01:05:36 PM     all      0.20      0.00      0.20      0.20      0.00     99.40 Average:        all      0.20      0.00      0.20      0.07      0.00     99.53 all 表示统计信息为所有 CPU 的平均值。 %user:显示在用户级别(application)运行使用 CPU 总时间的百分比。 %nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。 %system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。 %iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。 %steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。 %idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

关注点:  若 %iowait 的值过高,表示硬盘存在I/O瓶颈  若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量  若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

查看二进制文件test中的内容

1

sar -u -f test

监控内存:

#每10秒采样一次,连续采样3次,监控内存分页

1 2 3 4 5 6 7 8 9 10 11 12 13 14

sar -r 10 3 Linux 3.10.0-693.2.2.el7.x86_64 (blog_site)     08/12/2018      _x86_64_        (1 CPU) 01:10:59 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty 01:11:09 PM    145712    870456     85.66     29024    384760   1716872     83.15    319576    339936         0 01:11:19 PM    145712    870456     85.66     29024    384760   1716872     83.15    319576    339936         0 01:11:29 PM    145712    870456     85.66     29024    384760   1716872     83.15    319580    339936         0 Average:       145712    870456     85.66     29024    384760   1716872     83.15    319577    339936         0 kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间. kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间. %memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比. kbbuffers和kbcached:这两个值就是free命令中的buffer和cache. kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap). %commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

内存分页监控:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

# sar -B 10 3</code> Linux 3.10.0-693.2.2.el7.x86_64 (blog_site)     08/12/2018      _x86_64_        (1 CPU) 01:14:10 PM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff 01:14:20 PM      0.00      0.00      7.62      0.00     16.73      0.00      0.00      0.00      0.00 01:14:30 PM      0.00      0.00      2.81      0.00      8.73      0.00      0.00      0.00      0.00 01:14:40 PM      0.00      0.80      1.71      0.00     14.84      0.00      0.00      0.00      0.00 Average:         0.00      0.27      4.04      0.00     13.44      0.00      0.00      0.00      0.00 pgpgin/s:表示每秒从<a title="View all posts in 磁盘" href="http://lovesoo.org/tag/%e7%a3%81%e7%9b%98">磁盘</a>或SWAP置换到内存的字节数(KB) pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB) fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor) majflt/s:每秒钟产生的主缺页数. pgfree/s:每秒被放入空闲队列中的页个数 pgscank/s:每秒被kswapd扫描的页个数 pgscand/s:每秒直接被扫描的页个数 pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数 %vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比

I/O和传送速率监控:

1 2 3 4 5 6 7 8 9 10 11 12 13

# sar -b 10 3</code> Linux 3.10.0-693.2.2.el7.x86_64 (blog_site)     08/12/2018      _x86_64_        (1 CPU) 01:15:46 PM       tps      rtps      wtps   bread/s   bwrtn/s 01:15:56 PM      1.50      1.30      0.20     21.64      2.40 01:16:06 PM      0.20      0.00      0.20      0.00      2.40 01:16:16 PM      6.12      5.82      0.30    358.68      7.22 Average:         2.61      2.37      0.23    126.70      4.01 tps:每秒钟物理设备的 I/O 传输总量 rtps:每秒钟从物理设备读入的数据总量 wtps:每秒钟向物理设备写入的数据总量 bread/s:每秒钟从物理设备读入的数据量,单位为 块/s bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

进程队列长度和平均负载状态监控:

1 2 3 4 5 6 7 8 9 10 11 12 13

# sar -q 10 3</code> Linux 3.10.0-693.2.2.el7.x86_64 (blog_site)     08/12/2018      _x86_64_        (1 CPU) 01:17:05 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked 01:17:15 PM         0       156      0.01      0.03      0.05         0 01:17:25 PM         0       156      0.01      0.03      0.05         0 01:17:35 PM         0       156      0.01      0.03      0.05         0 Average:            0       156      0.01      0.03      0.05         0 runq-sz:运行队列的长度(等待运行的进程数) plist-sz:进程列表中进程(processes)和线程(threads)的数量 ldavg-1:最后1分钟的系统平均负载(System load average) ldavg-5:过去5分钟的系统平均负载 ldavg-15:过去15分钟的系统平均负载

要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来

  • 怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
  • 怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
  • 怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

iptraf使用

iptraf可以实时的监控网卡流量,可以生成各种网络统计数据,包括TCP信息,UDP信息,ICMP信息,以太网负载信息,节点统计,IP校验和错误等信息

1)安装

1

yum -y install iptraf

2)使用介绍

1 2 3 4 5 6

-i: 后跟网络接口名称 -g: 立即开始生成网络接口的概要状态信息 -d: 后跟网络接口可以立即监视明细的网络流量信息 -s: 后跟网络接口可以立即监视TCP和UDP网络流量信息 -t: 指定iptraf指令监视的时间,timeout指定时间的minute数 -L: 指定一个文件用与记录所有命令行的日志

3)示例

直接输入iptraf-ng即可,进去界面后可根据提示进行选择,界面非常的友好

dstat使用

dstat可以实时的看到所有系统资源,报错磁盘利用率,网络带宽数值,CPU状态,分页统计,系统统计等

1)安装

1

yum -y install dstat

2)使用方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

-tcp: 显示常用的TCP统计 -c: 统计CPU状态 -d: 统计磁盘读写状态 -D: 统计指定磁盘或汇总信息 -I: 统计系统负载情况 -m: 统计系统物理内存情况 -s: 统计swap已使用和剩余量 -n: 统计网络使用情况 -N: 统计指定接口的汇总流量 -r: 统计I/O请求。包括读写请求 -p: 统计进程信息 -y: 统计系统信息,包括中断、上下文切换 -t: 显示同估计时时间 –disk-util :显示某一时间磁盘的忙碌状况 –freespace :显示当前磁盘空间使用率 –proc-count :显示正在运行的程序数量 –top-bio :指出块I/O最大的进程 –top-cpu :图形化显示CPU占用最大的进程 –top-io :显示正常I/O最大的进程 –top-mem :显示占用最多内存的进程 –fs 统计文件打开数和inodes数

查看网络占用情况

1

dstat -nf

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • nload使用
    • 1)安装方法
      • 2)参数介绍
        • 3)示例
        • iftop使用
          • 1)安装
            • 2)参数介绍
              • bmon使用
                • 1)安装
                  • 2)参数介绍
                  • sar使用
                    • 1)安装
                      • 2)参数介绍
                        • 3)示例
                        • iptraf使用
                          • 1)安装
                            • 2)使用介绍
                              • 3)示例
                              • dstat使用
                                • 1)安装
                                  • 2)使用方法
                                  相关产品与服务
                                  命令行工具
                                  腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档