网络测试工具Netperf安装使用

简介:
Netperf是一种网络 性能测试工具,主要针对据域TCP和UDP的传输。Netperf根据应用的不同可以进行不同模式的网络性能测试,既批量数据传输模式(bulk data transfer)请求/应答模式(request/response)模式。Netperf测试结果所反映的是一个系统能够以多快速度向另外一台系统发送数据,以及另外一个系统能够以多快速度接收数据。
  Netperf工具以client/server方式 工作server端是netserver,用来侦听来自client端的连接。client端是netperf,用来行server发起网络测试。在client和server之间,首先建立一个控制连接,传输有关测试配置信息,以及测试结果;在控制连接建立并传输了测试配置信息以后,client与server之间回再建立一个测试连接,用来来回传递特殊的流量模式,以测试网络的性能。
   1.下载
  下载地址:http://www.netperf.org/netperf/
  这个网站上有最新版本的下载连接和操作手册
  例如下载的文件为:netperf-2.6.0.tar
   2.解压
  $ tar -xvf netperf-2.6.0.tar
   3.安装
  $ cd netperf-2.6.0
  $ ./configure
  $ make
  $ make install
   4.首先在服务器端运行
  $ netserver
   5.运行客户端
  $ netperf -H host -l testlen -t  testname
  命令参数:
  -H host:  指定远端运行netserver的server ip地址
  -l testlen: 指定测试的时间长度(秒)
  -t testname: 指定进行的测试类型,包括TCP_STREAM, UDP_STREAM, TCP_RR,UDP_RR, TCP_CRR
   6. 测试案例
  (1)服务器端执行:(ip: 10.10.11.208)
[root@phpc1 netperf-2.6.0]# netserver
Starting netserver with host 'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC
[root@phpc1 netperf-2.6.0]#
   (2)客户端运行
[root@phpc2 netperf-2.6.0]# netperf -H 10.10.11.208 -l 60 -t TCP_STREAM
MIGRATED TCP STREAM  TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.10.11.208 () port 0 AF_INET
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec
87380  16384  16384    60.03     [root@phpc2 netperf-2.6.0]# netperf -H 10.10.11.208 -l 60 -t TCP_STREAM
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.10.11.208 () port 0 AF_INET
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec
87380  16384  16384    60.03     937.04


 从netperf是输出结果中我们可以知道以下信息:
  (a) 远端系统(即server)使用大小为87380字节的socket接受缓冲区
  (b)本地系统(即client)使用大小为16384字节的socket发送缓冲区
  (c)向远端系统发送的测试分组大小为16384字节
  (d)测试经历的时间为60秒
  (e)吞吐量的测试结果为  937.04 *10^6bits/sec
  在缺省情况下,netperf向发送的测试分组大小为本地系统所使用的socket发送缓冲大小
  TCP_STREAM方式下与测试相关的局部参数如下所示:
  -s size:设置本地系统的socket发送与接收缓冲大小
  -S size:  设置远端系统的socket发送与接收缓冲大小
  -m size: 设置本地系统发送测试分组的大小
  -M size:  设置远端系统接收测试分组的大小
  -D: 对本地与远端系统的socket设置TCP_NODELAY选项I/O测试。
  其他网络性能测试工具如 dbs, iperf, pathrate, nettest, netlogger, tcptrace, ntop.
   7.网络性能介绍
  (1)TCP网络性能
  由于TCP协议能够提供端到端的可靠传输,因此被大量的网络应用程序使用。但是,可靠性的建立是要付出代价的。TCP协议保证可靠性的措施,如建立并维护连接,控制数据有序的传输等都会消耗一定的网络带宽。
  netperf可以模拟以下三种不同的tcp流量模式:
  (a)单个TCP连接,批量(bulk)传输大量数据。
  (b)单个TCP连接,client请求/server应答的方式
  (c)多个TCP连接,每个链接中一对请求/应答方式
  (2)UDP网络性能
   UDP没有建立连接的负担,但是udp不能保证传输的可靠性,所以使用udp的应用需要自行跟踪美国发出的分组,并重发丢失的分组,netperf可以模拟两种udp流量模式:
  (a) 从client到server的单向批量传输
  (b)请求/应答方式
  由于udp传输的不可靠性,在使用netperf是需要确保发送的缓冲区大小不大于接收缓冲区大小,否则数据丢失,netperf将给出错误的结果。因此,对于接收到分组的统计不一定准确,需要结合发送分组的统计综合得出结论。
最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
2天前
|
JavaScript 前端开发 UED
在 JavaScript 中,异步编程和回调函数是处理非阻塞操作(如网络请求、文件读写等)的重要工具
【5月更文挑战第10天】JavaScript中的异步编程和回调函数用于处理非阻塞操作,提高应用响应性和吞吐量。异步编程通过回调函数、Promises和async/await等方式实现,避免程序因等待操作完成而阻塞。回调函数是异步操作完成后调用的函数,常用于处理网络请求等。然而,回调函数存在嵌套问题和错误处理困难,因此出现了Promises和async/await等更优解决方案。
10 3
|
15天前
|
机器学习/深度学习 数据采集 人工智能
【专栏】AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计
【4月更文挑战第27天】本文探讨了AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计。AI辅助工具利用机器学习、自然语言处理和图像识别提高效率,但面临数据质量、模型解释性、维护更新及安全性挑战。未来,AI将更注重用户体验,提升透明度,并在保护隐私的同时,通过联邦学习等技术共享知识。AI在软件测试领域的前景广阔,但需解决现有挑战。
|
4天前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
13 0
|
6天前
|
测试技术 API
探索软件测试中的自动化工具与挑战
本文探讨了软件测试领域中自动化工具的应用与挑战。通过分析目前主流的自动化测试工具,探讨了其在提高测试效率、减少人工成本、增强测试覆盖率等方面的优势。然而,自动化测试也面临着诸如脆弱性、维护成本高等挑战。最后,提出了一些应对挑战的建议,以期为软件测试领域的自动化工作提供一些启示。
13 1
|
11天前
|
机器学习/深度学习 人工智能 测试技术
提升软件测试效率与准确性的策略与工具
【5月更文挑战第2天】 在软件开发生命周期中,测试阶段是确保产品质量的关键。然而,传统的测试方法往往耗时且容易出错。本文将探讨一系列现代软件测试策略和工具,旨在提高测试效率和准确性。我们将分析自动化测试框架、持续集成(CI)、测试驱动开发(TDD)以及人工智能(AI)在测试中的应用,并讨论如何结合这些技术和方法来优化测试流程。
|
12天前
|
敏捷开发 监控 测试技术
探索自动化测试工具Selenium Grid的高效集成策略
【4月更文挑战第30天】在现代Web应用的快速迭代和持续部署中,测试自动化已成为确保产品质量的关键。Selenium Grid作为一款支持多种浏览器和操作系统的测试工具,提供了并行执行测试用例的能力,极大地提升了测试效率。本文将深入探讨如何高效地将Selenium Grid集成到现有的测试框架中,以及实施过程中的最佳实践,帮助团队最大化测试覆盖率,同时降低资源消耗。
|
12天前
|
中间件 测试技术 API
探索自动化测试工具的新边界:Selenium与Appium的集成实践
【4月更文挑战第30天】 随着移动应用和Web应用的不断融合,传统的自动化测试工具需要适应新的测试环境。本文将详细分析Selenium和Appium这两款流行的自动化测试工具的集成实践,探讨如何构建一个能够同时支持Web和移动端应用的自动化测试框架。通过对比两者的技术架构、功能特性以及在实际项目中的集成过程,我们旨在为读者提供一个清晰的指导,帮助他们在复杂的应用环境中实现高效、稳定的自动化测试流程。
|
12天前
|
弹性计算 运维 Shell
自动化网络扫描工具发现活跃主机
【4月更文挑战第30天】
9 0
|
12天前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
12天前
|
机器学习/深度学习 人工智能 机器人
深入理解自动化测试:框架、工具与实践
【4月更文挑战第30天】 在现代软件开发周期中,自动化测试已成为确保产品质量和加速市场交付的关键环节。本文将探讨自动化测试的核心框架、常用工具以及实际应用的最佳实践,旨在为软件测试工程师提供深入的理解和有效的策略,以改进其自动化测试流程。我们将分析几种流行的测试自动化框架,包括Selenium、Appium和JUnit,并讨论如何根据项目需求选择适合的工具。此外,文中还将介绍持续集成(CI)环境下的自动化测试策略,以及如何通过测试结果分析和报告来优化测试过程。目标是帮助读者构建更健壮、更高效的自动化测试系统。