• 五款好玩又好用的Linux网络测试和监控工具


    五款好玩又好用的Linux网络测试和监控工具


    51CTO精选译文】在这篇介绍几款Linux网络测试实用工具的文章中,我们使用BandwidthdSpeedometerNethogsDarkstatiperf,跟踪带宽使用情况和网络速度、查找网络资源消耗大户,以及测试性能。

    Bandwidthd

    Bandwidthd是一款好玩又好用的应用程序,虽然自2005年以来就没有更新过,但是它仍很管用,至少在本人的Kubuntu系统上是这样。它以色彩鲜艳的漂亮图形显示了你的进出带宽使用情况,并且在网页上按日、周、月和年加以统计。所以,你还需要Apache服务器,或另外某台HTTP服务器。可以监控单单一台电脑,也可以监控局域网上的每个人。如果你需要关注带宽限量,这款优秀的应用程序可用于跟踪每月带宽使用情况。

    http://s9.51cto.com/wyfs02/M01/22/9B/wKioL1MhGZvSVOynAAD-edqQSKE271.jpg

    1:漂亮的Bandwidthd图形

    Bandwidthd几乎没有任何说明文档。man bandwidthd列出了其所有配置文件和目录。它的Sourceforge页面上更是内容寥寥无几。现在有两个版本:bandwidthdbandwidthd-pgsqlBandwidthd每隔150秒生成静态HTML页面,而bandwidthd-pgsql在动态PHP页面上显示了图形和数据。网页上写道"两个版本的可视化输出结果很相似,但数据库驱动的系统允许用户进行搜索、过滤、监测多个传感器和创建自定义报表。"我认为,如果你想要搜索、过滤、监测多个传感器或创建自定义报表,就得改动PHP文件。在我的系统上安装很容易,这归功于DebianUbuntu程序包维护者。它创建了Apache配置,并安装了PostgreSQL,然后我要做的就是打开Web浏览器,浏览到http://localhost/bandwidthd,除了在配置文件中外,该网址没有记录在任何地方,所以你最先在这里听说该网址。

    相关链接:http://bandwidthd.sourceforge.net/

    Speedometer

    Speedometer在控制台上显示了实时图形(所以你不需要Web服务器),显示了数据在你的网络连接上传输有多快,它还可以解答"我的硬盘速度有多快"这一问题。最简单的用法显示了每秒收到或传输的字节数。这被称为分路器(tap):

    1. $ speedometer -r eth0 

    你可以通过创建两个分路器来监测双向流量:

    1. $ speedometer -r eth0 -t eth0 

    默认是堆叠分路器。-c选项而是制作了漂亮的列,-k 256显示了256种颜色,而不是默认的16种颜色,如图2所示。

    1. $ speedometer  -r eth0 -c -t eth0 

    http://s6.51cto.com/wyfs02/M01/22/9A/wKiom1MhGf-AcSKoAABAjpRmilg721.jpg

    2Speedometer256种颜色和多列跟踪进出的流量

    你可以通过使用dd,创建一个1GB大小的原始文件,测量硬盘的原始写入速度,然后使用Speedometer,测量创建该原件文件需要多长时间:

    1. $ dd bs=1000000 count=1000 if=/dev/zero of=testfile & speedometer testfile 

    更改count值,即可生成不同大小的文件;比如说,count=2000创建了一个2GB大小的文件。你还可以试着更改不同的数据块大小(bs),看看这有没有什么区别。记得完成后,务必要删除testfile,除非你喜欢任由毫无用处的大文件躺在那里。

    相关链接:http://www.linux.com/speedometer

    Nethogs

    Nethogs是一款简单的控制台应用程序,可显示每个进程的带宽,所以你可以马上看到谁在耗用网络资源。最简单的调用指定了你的网络接口,然后它既显示了入站数据包,又显示了出站数据包:

    1. $ sudo nethogs eth0 

    2. NetHogs version 0.8.0 

    3. PID USER     PROGRAM                DEV        SENT      RECEIVED 

    4. 1703  carla      ssh                       eth0      9702.096     381.697 KB/sec 

    5. 5734  www-data  /usr/bin/fie                eth0         1.302      59.301 KB/sec 

    6. 13113 carla       ..lib/firefox/firefox         eth0          0.021       0.023 KB/sec 

    7. 2462  carla      ..oobar/lib/foobar          eth0       0.000       0.000 KB/sec 

    8. ?     root       unknown TCP                          0.000       0.000 KB/sec 

    9. TOTAL                                           9703.419     441.021 KB/sec 

    使用-r选项显示单单收到的数据包,使用-s选项查看单单发送的数据包。

    相关链接:http://nethogs.sourceforge.net/

    Darkstat

    Darkstat是另一款基于Web的网络监控工具,不过它包括自己的嵌入式HTTP服务器,所以你就不需要Apache了。以网络接口名称作为唯一的选项来启动它:

    1. $ sudo darkstat -i eth0 

    然后打开Web浏览器,浏览到http://localhost:667,你会看到类似图3的结果。

    http://s4.51cto.com/wyfs02/M00/22/9A/wKiom1MhGmzCyHIjAACwD_RVJNM967.jpg

    3Darkstat的默认显示画面

    点击自动重装按钮,即可让它实时更新。Hosts(主机)选项卡显示了你与相连接、你已连接了多长时间,以及你们之间已传送了多少数据(以字节数为单位)。

    你可以将Darkstat作为守护程序来运行,并且让它在系统启动时开启。这一步怎么做取决于你的Linux发行版以及所使用的初始化系统(UpstartsystemdsysvinitBSDinit)。这方面你得自己搞清楚。

    相关链接:http://unix4lyfe.org/darkstat/

    iperf

    缌的读者肯定一直在想"怎么没有iperf"。好了,现在就来说说iperfiperf可报告带宽、延迟抖动和数据报丢失等方面的情况。换句话说,它可以测试网络链路质量,而链路质量对传送音乐、视频和视频会话等流媒体来说很重要。你需要在想要测试的那条链路的两头都要安装iperf:在这个例子中,两头分别是StudioUberpc。然后在一个主机上,在服务器模式下开启iperf;在另一个主机上,在客户机模式下运行iperf。要注意:在客户机上,你必须为服务器命名。下面是运行测试的最简单方式:

    1. carla@studio:~$ iperf -s 

    2. terry@uberpc:~$ iperf -c studio 

    3. carla@studio:~$ iperf -s 

    4. ------------------------------------------------------------ 

    5. Server listening on TCP port 5001 

    6. TCP window size: 85.3 KByte (default) 

    7. ------------------------------------------------------------ 

    8. [4] local 192.168.1.132 port 5001 connected with 192.168.1.182 port 32865 

    9. [ID] Interval       Transfer     Bandwidth 

    10. [4]  0.0-10.0 sec  1.09 GBytes   938 Mbits/sec 

    11. terry@uberpc:~$ iperf -c studio 

    12. ------------------------------------------------------------ 

    13. Client connecting to studio, TCP port 5001 

    14. TCP window size: 22.9 KByte (default) 

    15. ------------------------------------------------------------ 

    16. [3] local 192.168.1.182 port 32865 connected with 192.168.1.132 port 5001 

    17. [ID] Interval       Transfer     Bandwidth 

    18. [3]  0.0-10.0 sec  1.09 GBytes   938 Mbits/sec 

    这是单向的,即从服务器到客户机。你可以从客户机端测试双向性能:

    1. terry@uberpc:~$ iperf -c studio -d 

    2. ------------------------------------------------------------ 

    3. Server listening on TCP port 5001 

    4. TCP window size: 85.3 KByte (default) 

    5. ------------------------------------------------------------ 

    6. ------------------------------------------------------------ 

    7. Client connecting to studio, TCP port 5001 

    8. TCP window size: 54.8 KByte (default) 

    9. ------------------------------------------------------------ 

    10. [5] local 192.168.1.182 port 32980 connected with 192.168.1.132 port 5001 

    11. [4] local 192.168.1.182 port 5001 connected with 192.168.1.132 port 47130 

    12. [ID] Interval       Transfer     Bandwidth 

    13. [5]  0.0-10.0 sec  1020 MBytes   855 Mbits/sec 

    14. [4]  0.0-10.0 sec  1.07 GBytes   920 Mbits/sec 

    上述那些就千兆以太网而言速度不错,接近理论最大速率,所以这告诉我们物理网络处于良好状态。当然,实际性能会有所下降,因为网络开销大于这个简单测试。现在,不妨看一下延迟抖动。使用Ctrl+c组合键,停止服务器运行,然后用iperf -su重启服务器。在客户机上,试一试:

    1. $ iperf -c studio -ub 900m 

    -b 900m意味着,以每秒900兆比特的速度运行测试,所以你需要针对自己的网络调整这个参数,并且测试不同的速度。良好的运行速度如同这样:

    1. [ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total  

    2. Datagrams 

    3. [  3]  0.0-10.0 sec   958 MBytes   803 Mbits/sec   0.013 ms 1780/684936 

    4. (0.26%) 

    5. [  3]  0.0-10.0 sec  1 datagrams received out-of-order 

    0.013毫秒抖动是它能得到的最短延迟。超过1000毫秒,就会干扰音频和视频流传送。0.26%的数据报丢失率也很低。如果丢失率更高,那样数据包需要重新发送时,会导致更长的延迟。

    有一个新版本的iperf,那就是iperf 3.0.1http://code.google.com/p/iperf/)。有朝一日,这应该会取代iperf2。新版本是从头开始改写的,所以它非常整洁,并不拙劣,它包括一个可用于其他程序的库版本。新版本仍是个新兴产品,所以预计会有不尽如人意的地方。

    相关链接:http://iperf.sourceforge.net/

    原文链接:http://www.linux.com/learn/tutorials/765381-five-funny-little-linux-network-testers-and-monitors

     

    来源: <http://os.51cto.com/art/201403/431950.htm?foxhandler=RssReadRenderProcessHandler>

     

     





  • 相关阅读:
    Java--基础阶段--2Java基本语法-2.6数组
    Java--基础阶段--2Java基本语法-2.4运算符
    Java--基础阶段--2Java基本语法-2.3.5进制间转化
    Java--基础阶段--2Java基本语法-2.3.4原码/反码/补码
    Java--基础阶段--2Java基本语法-2.3.3ASCII码/Unicode编码/UTF-8
    Java--基础阶段--2Java基本语法-2.3.2整数/浮点/字符/布尔类型
    Java--基础阶段--2Java基本语法-2.3.1变量
    Java--基础阶段--2Java基本语法-2.2.2Java中的名称命名规范
    Java--基础阶段--2Java基本语法-2.2.1标识符
    Java--基础阶段--第4章: 面向对象编程(上)
  • 原文地址:https://www.cnblogs.com/aserlinux/p/3598056.html
Copyright © 2020-2023  润新知