网站维护提示,网站开发工具选用原则,沈阳大熊网站建设制作,pc网站开发压测工具其它有用工具在这里#xff0c;我们会讨论主要的压力测试工具#xff0c;选择合适的压测工具#xff0c;才能准确衡量系统性能。好的压测工具有很多#xff0c;可能的功能如下#xff1a;发起压力监控性能监控系统使用率生成报告基准测试无非就是看系统能力是否达…压测工具其它有用工具在这里我们会讨论主要的压力测试工具选择合适的压测工具才能准确衡量系统性能。好的压测工具有很多可能的功能如下发起压力监控性能监控系统使用率生成报告基准测试无非就是看系统能力是否达到对系统预期的能力。如果一款系统拥有较高的Linpack分数但它未必是理想的文件服务器。需要记住的是基准测试不可能模拟出终端用户的行为因为他们是不可预测的。基准测试不会告诉你在用户访问他们文件的时候或者备份开始的时候服务器会做什么反应。一般来说基准测试应该遵循如下几个原则为服务器负载做基准测试服务器系统和典型的PC完全不同。为了利用系统的SMP能力和模拟一个真实的多用户环境服务器测试使用多线程。PC打开一个网页浏览器的速度可能比高端服务器更快但是服务器打开1000个网页浏览器的速度会比PC快很多。 模拟预期的负载所有的基准测试都有不同的配置选项我们应该朝着未来预期运行的负载方向定制测试。如果应用需要低延迟的磁盘那么强大的CPU性能也没什么大的用处。隔离测试系统如果要对系统进行基准测试首先要把它尽可能的从其它负载中隔离。在系统上运行一个top命令也会极大的影响基准测试结果。结果平均即使你试着隔离测试系统可能还会有未知的因素在压测时影响系统性能。经验表明至少执行三次测试然后将结果平均以保证偶然因素不会影响全面分析。下面是基于以上标准选择的工具在Linux上测试Linux是基准测试的目标能运行在所有的硬件平台上测试由于IBM提供3种不同的硬件平台(把IBM System p和IBM System i看做都是基于IBM POER架构)所以选择不用做太多修改就能在所有架构上使用的工具很重要。开源Linux运行在很多平台上如果需要到处运行就可能需要源代码。文档全面必须了解你用来做性能测试的工具所以你需要文档。在使用某工具之前先了解它的理念、设计和细节以确定它是否真的合适。维护中的如果使用已经停止维护的软件可能无法跟上最新的技术和标准导致错误的结果。广泛使用的你很方便找到相关信息。使用简单的简单更好用。能产生报告具有报告功能能极大的减轻性能分析工作。lmbenchLMbench是一套微测试工具用来分析不同操作系统设置比如SELinux是否启用。LMbench可以用来测试操作系统的各个方面如上下文切换、本地通信、内存带宽、文件操作等。LMbench使用起来很简单仅有三个重要命令 make results第一次启动LMbench时它会提示一些操作系统的信息还有要执行哪些测试。 make return在完成初始化配置和第一次运行LMbench之后使用make return命令重复make results时的配置进行测试。 make see在至少三次运行之后可以使用make see命令查看结果。可以使用图表的方式展示和分析。 LMbench项目地址是http://sourceforge.net/projects/lmbench/iozoneIOzone是一个文件系统测试工具可以用它模拟各种磁盘访问方式。由于IOzone的配置很详细所以可以用来精确的模拟目标文件系统的负载。IOzone可以使用不同的块大小写入各种大小的文件。IOzone有一种非常好用的自动测试模式方便测试者自定义各种测试行为如文件大小、I/O大小和访问方式等等。如果文件系统是为数据库服务做准备的应该重点测试大block size的大文件随机访问而不是小block size的大文件。IOzone重要的选项如下-b 让IOzone以微软Excel兼容格式保存成电子表格。-C 显示每个子进程的输出(用来检查是否每个子进程都在运行模拟程序)-f 告诉IOzone写入文件的地方-i 使用这个选项指定要运行什么测试。使用-i 0 指定第一时间写入到测试文件。使用-i 1是流式读-i 8是混合随机访问负载。-h 显示帮助-r 指定测试类型和I/O大小。测试文件大小应该尽量和目标系统以后的工作负载相似以便测试出真实的负载能力。-k 使用内核2.6的异步I/O特性。经常用在数据库服务器的测试例如IBM的DB2。-m 如果目标应用使用多个内部缓冲那么可以使用-m选项模拟这个行为。-s 指定测试文件的大小。对于异步文件系统(大多数文件系统的默认挂载选项)IOzone应该使用至少两倍内存大小的测试文件才能真正衡量出磁盘性能。测试文件大小可以MB或者GB为单位直接在大小后面跟上m或者g的单位即可。-u 实验性的选项。可以衡量在测试期间处理器的使用率。注意保存在异步文件系统并且小于系统内存大小的测试文件只能测试内存吞吐量而不是磁盘子系统的性能。所以你的目标文件系统应该使用sync选项挂载并且测试文件是系统内存的至少两倍。如下的例子展示了使用IOzone来衡量挂载在/perf目录上的磁盘子系统的随机读性能测试文件大小为10GB32KB的block size。./iozone-b results.xls-R-i0-i2-f/perf/iozone.file-r32-s10g最后可以把获得的结果导入到电子表格中并且转换为图形格式。使用图形输出数据可以更简单的分析大文件数据并且看出趋势。下图就是上面的命令可能的一种输出情况。如果IOzone的文件大小和系统内存或者缓存一致可以用来获取缓存和内存的吞吐量。应该注意的是由于文件系统开销IOzone只会获得70-80%的系统能力。netperfnerperf是专注于TCP/IP网络性能的测试工具。它支持UNIX的socket和SCTP测试。netperf基于C/S(client-server)模型设计。netserver运行在目标服务器上netperf运行在客户机上。netperf控制netservernetperf把配置数据发送到netserver产生网络流量从一个独立于测试连接的控制连接获取netserver的结果。在测试过程中在控制连接中没有数据交流所以不会对结果产生影响。netperf压测工具也有提供报表的功能包括CPU使用率。本书写作期间稳定版本是2.4.3(本书翻译时候netperf稳定版是2.6.0)。netperf能生成多种类型的流量。基本分为两种大块传输数据的流量和请求/响应的流量。netperf一次只使用一个socket。在下一版本的netperf(netperf4)中将会全面支持并发会话。当前我们可以使用如下办法进行多会话的测试。大块数据传输(Bulk data transfer)大块数据传输能力是网络测试中最常用的指标通过一秒钟传送的数据量来衡量。它可以模拟大文件传输例如多媒体流和FTP的数据传输。请求/响应(Request/response type)模拟请求/响应的流量衡量指标是一秒钟完成的请求响应次数。请求/响应是最常见的在线应用流量例如web、数据库、邮件服务、文件服务(中小文件)目录服务。在真实的环境中会话的建立终止和数据交换的方式是一样的。为了模拟它需要使用到TCP_CRR类型。并发会话(Concurrent session)在当前的稳定版中netperf还不真正支持并发会话测试但是我们可以以如下的方式开启多个netperf实例foriin‘seq110‘;donetperf-t TCP_CRR-H target.example.com-i10-P0;done我们可以看看如下一些有用和有趣的选项全局选项-A 设置本地接收和发送缓冲的调整-b 爆发大量流测试包-H 远程机器-t 测试流量类型TCP_STREAM 大量数据传输测试TCP_MAERTS 和TCP_STREAM很像只是流的方向相反TCP_SENDFILE 和TCP_STREAM很像只是使用sendfile()而不是send()。会引发zero-copy操作UDP_STREAM 和TCP_STREAM很像只不过是UDPTCP_RR 请求响应报文测试TCP_CC TCP的连接/关闭测试。不产生请求和响应报文。TCP_CRR 执行连接/请求/响应/关闭的操作。和禁用HTTP keepalive的HTTP1.0/1.1相似。UDP_RR 和TCP_RR一样只不过是UDP。-l 测试长度。如果是一个正值netperf会执行testlen秒。如果值为负netperf一直执行直到大量数据传输测试中交换testlen字节或者在请求/响应次数达到testlen。-c 本地CPU使用率报告-C 远程服务器CPU使用率报告在某些平台上CPU使用率的报告可能不准确。在性能测试之前请确保准确性。-I 这个选项是用来维护结果可信度的。可信级别应该设置为99%或者95% 。为了保证结果可信度级别netperf会把多次重复测试。例如-I 99 5代表在100次的99次中测试结果和真实情况有5%(-2.5%)的浮动区间。-i 这个选项限制了最大和最小的重复次数。-i 10 3表示netperf重复同样的测试最多10次最少3次。如果重复次数超过最大值结果就不在-I指定的可信任级别中将在结果中显示一个警告。-s , -S 修改发送和接收的本地和远程缓冲大小。这个会影响到窗口大小。TCP_STREAM,TCP_MAERTS,TCP_SENDFILE,UDP_STREAM的选项-m , -M 指定传给send()和recv()函数的缓冲大小。分别控制每个调用的发送和接收大小。TCP_RR,TCP_CC,TCP_CRR,UDP_RR的选项-r ,-R 分别指定请求和响应的大小。例如-r 128,8129意思是netperf发送128字节包到netserver然后它响应一个8129字节的包给netperf。如下是netperf的一个TCP_CRR的测试当执行性能测试的时候最好的做法是使用netperf的简单测试脚本。通过修改脚本的变量你可以定制自己的测试。脚本的路径在你的netperf包的doc/example/目录下。其它有用工具这里还有其它一些有用的测试工具。记住你必须了解压测工具的特性然后才能选择你需要的工具。工具主要功能NetBench文件服务器测试运行在Windows上ttcp简单的网络测试ab (Apache Bench)简单的web服务器测试包含在Apache服务器中http://httpd.apache.org/Apache Jmeter主要用来web服务器性能测试。也支持其它协议例如SMTPLDAPJDBC等有很好的报告功能http://jakarta.apache.org/jmeter/fsstonesmtpstonenhfsstone网络文件系统测试包含在nfs-utils包中