﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-哈库拉玛塔塔——tjitty-随笔分类-LoadRunner</title><link>http://www.cnitblog.com/tjitty/category/6897.html</link><description>记录下网络上的精品测试技术文章 and 生活</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 14:42:17 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 14:42:17 GMT</pubDate><ttl>60</ttl><item><title>使用LoadRunner录制脚本时如何选择合适的协议？</title><link>http://www.cnitblog.com/tjitty/archive/2008/09/08/48837.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Mon, 08 Sep 2008 08:31:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2008/09/08/48837.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/48837.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2008/09/08/48837.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/48837.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/48837.html</trackback:ping><description><![CDATA[
		<p>From:<a href="http://landing.blogbus.com/logs/19555215.html">http://landing.blogbus.com/logs/19555215.html</a></p>
		<p>【转载1】</p>
		<p>正确选择协议，就要熟悉被测试应用的技术架构。以下列出一些LoadRounner支持的协议：</p>
		<p>一般应用：C Vuser、VB Vuser、VB Script  Vuser、JAVA Vuser、JavaScript Vuser<br />电子商务：WEB（Http/Html)、FTP、LDAP、Palm、Web/WinsocketDual Protocol<br />客户端/服务器：MS SQL Server、ODBC、Oracle、DB2、Sybase CTlib、Sybase DBlib、Domain Name Resolution(DNS)、Windows Socket<br />分布式组件：COM/DCOM、Corba-Java、Rmi_Java<br />EJB：EJB、Rmi_Java<br />ERP/CRP：
Oracle NCA、SAP-Web、SAPGUI、SAPGUI/SAP-Web Dual
Protocol、PropleSoft_Tuxedo、Siebel Web、Siebel-DB2
CLI、Sieble-MSSQL、Sieble Oracle <br />遗留系统：Terminal Emulation (RTE)<br />Mail 服务：Internet Messaging(IMAP)、MS Exchange(MAPI)、POP3、SMTP<br />中间件：Jacada、Tuxedo 6、Tuxedo 7<br />无线系统：i-mode、voiceXML、WAP<br />应用部署软件：Citrix_ICA流：Media Plays(MMS)、Real  </p>
		<p> </p>
		<p>【转载2】</p>
		<p>一
段对于loadrunner协议选择的经典解答协议是数据在网络中传输的结构模式。协议不同，其数据报文的结构也有所不同。
协议是有层次的，一般我们从ip层开始，往上有TCP协议层，UDP协议层，而TCP和UDP协议层上又有http协议层，ftp协议层，smtp协议层
等我们在lr中看到的这些应用层的协议。
其实这些高层协议都是对底层协议进行的进一步封装。举个简单例子，本来IP协议的数据报文是无序，不是可靠传输的，在其数据报文外面增加了报文序号，报文
状态等数据段就构成了TCP协议层。
所以我们很多网络应用，没有找到合适的协议，就用winsock来录制，那是肯定没有问题的。因为几乎所有的网络传输中都是基于tcp协议或udp协议
的，而socket正是这一级上的概念。但是由于socket协议级别太低，你录下来的东西是很难理解的，都是socket，port，data之类的东
西。所以，我们尽量用高层协议来录制，我们就能看懂了。</p>
		<p>话要再说回来，解决一下具体的问题。我们看到一个软件体系架构，应该怎样选择录制协
议呢？说到这里，我要说一下自己对lr录制机理的理解（我没有接触过lr内核，只是凭猜测和推断）。在录制时，lr应该会对你从本机发出去的数据进行截
包，并拆包。因为我们知道协议的不同就是体现在数据包的结构不同，lr应该通过对包结构的分析，判断是不是它支持的协议，对包数据的分析，来获取用户发送
的东西。
比如你用ftp的协议去录制一个访问网页的IE操作，那肯定是无所收获的。因为lr没有在网络截获到ftp协议格式的包，都是http协议格式的包，它不
认，当然就是一个录制为空的结果了。
现在我们弄懂了这个事情，就知道该如何选择协议了。看见很多人关心lr是不是支持mysql协议。我认为要寻找的答案的思路是这样的：<br /><br />1、首先弄清mysql协议和其他数据库协议的关系，看能不能用其它数据库协议录制。但其实oracle的cs协议是oracle独有自己开发的协议，sqlserver也是一样，而mysql又与这几大产品又不是隶属关系，其脚本录制的可能性很小。<br />2、mysql协议的底层是基于什么协议的，如果直接构建在tcp协议上，lr又不支持mysql协议，那只能考虑用低一点的协议录录看，即socket。如果mysql协议是构建在odbc协议上的，那么就可能用lr的odbc api来写。  </p>
		<p> </p>
		<p>【转载3】</p>
		<p>很
多时候一提到不是基于浏览器的应用，很多人就会想到用WinSocket协议来录制，仿佛Form窗体都可以用Winsocket
。从道理上讲网络通讯的底层都是基于Socket的，例如TCP、UPD等，似乎所有的程序都可以用Socket协议来录制。但是事实不是这样的，因为选
择的协议决定了LoadRunner如何捕获数据包。否则会多捕获很多无用的数据。因此，不是所有的程序都是适合WinSocket协议的。实际上，那些
基于Socket开发的应用才真正适合Socket协议来进行录制。其他的，例如基于数据库的应用，就不太时候Socket协议，甚至可能录制不到脚本。
很多C/S程序，一定要选择合适的协议。根据作者的经验，C/S的程序多数需要手工开发很多脚本，因为录制的很多回放时候或多或少都会有些问题，但是可以
参考录制的结果。所以测试一个程序，一定要搞清楚开发人员用了什么技术、数据流是什么协议封装的。理论上来说我们在对一个系统做性能测试以前，要先和开发
人员了解一下他们在开发过程中都用了些什么技术，数据流是用什么协议封装的，还要了解我们要测试的系统的网络结构，服务器的配置等问题；还有就是要知道系
统客户端和第一服务器间的协议，这中间就涉及到一个中间件的问题。另外我们要知道协议的选择直接关系到LR会捕获到什么样的数据包。这些是进行性能测试的
基础。 下面说几个测试的原则（都是自己遇到过的，呵呵，没遇到过的就不知道了）：</p>
		<p>1、一般情况下b/s构架的只要 选择WEB（Http/Html)协议就可以了，如果有中间件的则选择中间件服务器的协议 ；<br />2、C/S结构，可以根据后端数据库的类型来选择。如SybaseCTLib协议用于测试后台的数据库为Sybase的应用；MS SQL Server协议用与测试后台数据库为 SQL Server的应用；<br />3、
一般不是基于浏览器的，对于一些没有数据库的Windows应用，我们在测试的过程中都会选择WinSocket协议来录制，理论上来讲我们这样选择是正
确的，但我们要知道在录制的时候所选择的协议就决定了LR如何捕获数据包，如果我们选择错误了，将会捕获到一些无用的数据包。cs结构是比较复杂的，在这
里我要提醒大家，一定要搞清楚cs是client-database还是client-server-database结构的，只有这样我们才能够决定是
选择WinSocket协议还是sql协议，或者说选择多个协议；当然协议的选择也是一个探索的过程，只要能够得到我们想要的结果，那就是正确的。还有一
点，我们在做性能测试的时候应该是有测试重点的，呵呵。<br />4、关于单协议和双协议，我只知道IE6内核的浏览器在录制脚本的时候要选择单协议，而IE7内核的浏览器在录制脚本的时候要使用双协议。 <br /></p>
<img src ="http://www.cnitblog.com/tjitty/aggbug/48837.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2008-09-08 16:31 <a href="http://www.cnitblog.com/tjitty/archive/2008/09/08/48837.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WEB性能测试［from CSDN blog］</title><link>http://www.cnitblog.com/tjitty/archive/2008/04/02/41816.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Wed, 02 Apr 2008 06:22:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2008/04/02/41816.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/41816.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2008/04/02/41816.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/41816.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/41816.html</trackback:ping><description><![CDATA[
		<div style="margin: 17pt 0cm 16.5pt;">
				<strong>
						<font size="6">
								<font size="4">1.1基本概念</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">并发用户：用户并发一般发生在使用比较频繁的模块中，而且遇到异常通常都是程序的问题。</font>
		</div>
		<div>
				<font size="2">用户并发数量：在线用户数量是计算并发用户数量的主要依据之一。=使用系统的用户数量*(5%~20%)</font>
		</div>
		<div>
				<font size="2">并发主要针对WEB服务器而言，是否并发的关键是看用户的操作是否对服务器产生了影响。</font>
		</div>
		<div>
				<font size="2">吞吐量：一次性能测试过程中网络上传输的数据量的总和。</font>
		</div>
		<div>
				<font size="2">吞吐率:吞吐量/传输时间，单位时间内网络上传输的数据量，也可以指单位时间内处理的客户端请求数量。吞吐率用“请求数/秒”或者“页面数/秒”来衡量。</font>
		</div>
		<div style="margin: 0cm 0cm 6pt;">
				<font size="2">点击率：每秒钟用户向web服务器提交的HTTP请求数。点击率越大，对服务器的压力也越大。重要的是分析点击时产生的影响。</font>
		</div>
		<div style="margin: 0cm 0cm 6pt;">
				<font size="2">点击不是指鼠标的一次“单击”操作，因为在一次“单击”操作中，客户端可能向服务器发出多个HTTP请求。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="5">
								<font size="4">1.2WEB性能测试种类</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">压力测试：确定一个系统的瓶颈或者不能接收用户请求的性能点，来获得系统能提供的最大服务级别的测试。</font>
		</div>
		<div>
				<font size="2">负载测试：在被测系统上不断增加压力　，直到性能指标达到极限，响应时间超过预定指标或者某种资源已经达到饱和状态。这种测试可以找到系统的处理极限，为系统调优提供依据。</font>
		</div>
		<div>
				<font size="2">大数据量测试：针对某些系统存储、传输、统计查询等业务进行大数据量的测试。</font>
		</div>
		<div>
				<font size="2">配置测试：通过测试找到系统各资源的最优分配原则。</font>
		</div>
		<div>
				<font size="2">可靠性测试：可以施加cpu资源保持70%-90%使用率的压力，连续对系统加压运行8小时，然后根据结果分析系统是否稳定。即加载一定压力的情况下，使系统运行一段时间。</font>
		</div>
		<div>
				<font size="2">并发测试：多以发现一些算法设计上的问题。</font>
		</div>
		<div>
				<font size="2">性能测试以用户并发测试为主的测试。</font>
		</div>
		<div>
				<font size="2">性能测试主要是为了发现软件问题和硬件瓶颈。</font>
		</div>
		<div>
				<font size="3">
						<font size="2">对于性能方面给系统留有30%左右的扩展空间即可。</font>
						<span>                                     </span>
				</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="5">
								<font size="4">1.3Web全面性能测试模型</font>
						</font>
				</strong>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">1.3.1预期指标的性能测试</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">主要指需求分析和设计阶段提出的一些性能指标。</font>
		</div>
		<div>
				<font size="2">针对每个指标都要编写一个或者多个测试用例来验证系统是否达到要求。</font>
		</div>
		<div>
				<font size="2">预期指标的性能测试用例通常以单用户为主，如果涉及并发用户内容，则归并到并发用户测试用例中进行设计。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">1.3.2并发性能测试</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">选择具有代表性、关键的业务来设计用例，并且用户的设计应该面向“模块”</font>
		</div>
		<div>
				<font size="2">用户并发性能测试分为：独立核心模块并发性能测试，组合模块并发性能测试</font>
		</div>
		<div>
				<font size="2">独立核心模块并发：完全一样功能的并发测试；完全一样操作的并发测试；相同/不同的子功能并发。</font>
		</div>
		<div>
				<font size="2">针对独立核心模块用户并发性能的测试用例设计，可发现一些核心算法或者功能方面的问题，如一些多线程、同步并发算法在单用户模式下测试是很难发现问题的，通过模拟多用户的并发操作，更容易验证其是否正确和稳定。</font>
		</div>
		<div>
				<font size="2">核心模块测试一般属于基本的性能测试，它较多地关注模拟的“功能”，一般不会对服务器进行测试。</font>
		</div>
		<div> </div>
		<div>
				<font size="2">组合模块并发：具有耦合关系的核心模块进行组合并发测试；彼此独立的、内部具有耦合关系的核心模块组的并发测试；基于用户场景的并发测试。</font>
		</div>
		<div>
				<font size="2">组合模块测试一般发现接口方面的功能问题，并尽早发现综合性能问题。</font>
		</div>
		<div>
				<font size="2">在实际中，各种类型的用户都会对应一组模块，相当于不同的业务组在并发访问系统，要充分考虑实际场景，如话费管理系统中的每月10日左右的收费高峰等场景。</font>
		</div>
		<div>
				<font size="2">在编写组合模块用户并发性能测试用例时，不但要考虑用户使用场景，还要注意并发点的运用，并发点是指一定数量的用户开始执行同一功能或者操作的时间点，一组测试场景通常包含多个并发点，从而实现了核心模块同一功能或者操作的真正并发。</font>
		</div>
		<div> </div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">1.3.3独立业务性能测试</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">独立业务实际是指一些核心业务模块对应的业务。这些模块通常具有功能比较复杂，使用比较频繁，属于核心业务等特点。主要测试这类模块和性能相关的一些算法、还要测试这类模块对并发用户的响应情况。</font>
		</div>
		<div>
				<font size="2">用户并发测试是核心业务模块的重点测试内容。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">1.3.4组合业务性能测试</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">是最接近用户实际使用情况的测试，也是性能测试的核心内容。</font>
		</div>
		<div>
				<font size="2">组合并发的突出特点是根据用户使用系统的情况分成不同的用户组进行并发，每组的用户比例要根据实际情况来进行匹配。</font>
		</div>
		<div>
				<font size="2">用户并发测试是组合业务性能测试的核心内容。“组合”并发的突出特点是根据用户使用系统的情况分成不同的用户组进行并发，每组的用户比例要根据实际情况来进行匹配。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">1.3.5网络性能测试</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">为准确展未带宽、延迟、负载和端口的变化是如何影响用户的响应时间的。主要是测试应用系统的用户数目与网络带宽的关系。</font>
		</div>
		<div>
				<font size="2">调整性能最好的办法就是软硬相结合。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">1.3.6大数据量测试</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">主要是针对对数据库有特殊要求的系统进行的测试，主要分为三种：</font>
		</div>
		<div>
				<font size="2">1．实时大数据量：模拟用户工作时的实时大数据量，主要目的是测试用户较多或者某些业务产生较大数据量时，系统能否稳定地运行。</font>
		</div>
		<div>
				<font size="2">2．极限状态下的测试：主要是测试系统使用一段时间即系统累积一定量的数据时，能否正常地运行业务</font>
		</div>
		<div>
				<font size="2">3．前面两种的结合：测试系统已经累积较大数据量时，一些实时产生较大数据量的模块能否稳定地工作。</font>
		</div>
		<div>
				<font size="2">大数据量测试用例的设计:1,历史数据引起的大数据量测试和2运行时大数据量测试</font>
		</div>
		<div>
				<font size="2">首先确定系统数据的最长迁移周期和选择一些前面的核心模块或者组合模块的并发用户测试用例作为其主要内容即可.</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">1.3.7服务器性能测试</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">性能测试的主要目的是在软件功能良好的前提下，发现系统瓶颈并解决，而软件和服务器是产生瓶颈的两大来源，因此在进行用户并发性能测试，疲劳强度与大数据量性能测试时，完成对服务器性能的监控，并对服务器性能进行评估。</font>
		</div>
		<div>
				<font size="2">服务器性能测试用例设计就是确定要采集的性能计数器，并将其与前面的测试关联起来。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">1.3.8设计性能测试用例注意的原则：</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">可以满足预期性能指标测试用例要求的，就没有必要设计更多的内容，因为用例越多，执行的成本也越高。</font>
		</div>
		<div>
				<font size="2">一定要服从整体性能测试策略，千万不能仅从技术角度来考虑设计“全面”的测试用例，“全面”应该以是否满足自己的测试要求作为标准。</font>
		</div>
		<div>
				<font size="2">适当裁剪原则</font>
		</div>
		<div>
				<font size="2">只有根据实际项目的特点制定合理的性能测试策略、编写适当的性能测试用例，并在测试实施中灵活地变通才可以做好性能测试工作。</font>
		</div>
		<div style="margin: 0cm 0cm 6pt;">
				<font size="2">测试计划：主要包含测试范围、测试环境、测试方案简介、风险分析等，测试计划要进行评审后方可生效。</font>
		</div>
		<div style="margin: 0cm 0cm 6pt;">
				<font size="2">测试报告：主要包含测试过程记录、测试分析结果、系统调整建议等。</font>
		</div>
		<div style="margin: 0cm 0cm 6pt;">
				<font size="2">测试经验总结：不断总结工作经验是建立学习型团队的基础，实践－总结－再实践</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="5">
								<font size="4">2.1人员之间的配合关系</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">客户代表：可了解一些项目的背景知识，例如客户在软件性能方面的需求，是否关注性能测试等，这些都是制定性能测试策略的依据。</font>
		</div>
		<div style="margin: 0cm 0cm 6pt;">
				<font size="2">需求分析员：确定哪些业务是核心业务，为后面编写核心业务模块相关的测试用例打下良好的基础，并且他们对用户群体构成以及系统的扩展目标较清楚，这些都是设计性能测试的数据来源。</font>
		</div>
		<div style="margin: 0cm 0cm 6pt;">
				<font size="2">架构师：了解系统的结构，使设计出的性能测试用例在“恰当”的地方施压。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="5">
								<font size="4">2.2性能测试的范围确定</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">对测试项或测试需求进行打分，根据综合评分确定性能测试工作包含的测试内容，评分要素主要包含客户关注度、性能风险、测试的成本等，性能风险主要指如果不进行该项性能测试需求，投产系统可能潜在的风险。</font>
		</div>
		<div>
				<font size="2">客户关注程度或者性能风险较高的均应划分到测试范围内。</font>
		</div>
		<table style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0">
				<tbody>
						<tr>
								<td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 70.95pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">编号</font>
										</div>
								</td>
								<td style="border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">测试需求</font>
										</div>
								</td>
								<td style="border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">性能风险</font>
										</div>
										<div>
												<font size="2">(10分)</font>
										</div>
								</td>
								<td style="border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71.05pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">用户关注度(10分)</font>
										</div>
								</td>
								<td style="border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71.05pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">成本投入</font>
										</div>
										<div>
												<font size="2">(10分)</font>
										</div>
								</td>
								<td style="border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71.05pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">总分</font>
										</div>
								</td>
						</tr>
						<tr>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext; border-left: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 70.95pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">1</font>
										</div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">系统运转一年的数据量测试</font>
										</div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">7</font>
										</div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71.05pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">10</font>
										</div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71.05pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">6</font>
										</div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71.05pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">23</font>
										</div>
								</td>
						</tr>
						<tr>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext; border-left: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 70.95pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">2</font>
										</div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">……</font>
										</div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71pt; background-color: transparent;" valign="top" width="95">
										<div>
												<font size="2">……</font>
										</div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71.05pt; background-color: transparent;" valign="top" width="95">
										<div> </div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71.05pt; background-color: transparent;" valign="top" width="95">
										<div> </div>
								</td>
								<td style="border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; padding: 0cm 5.4pt; width: 71.05pt; background-color: transparent;" valign="top" width="95">
										<div> </div>
								</td>
						</tr>
				</tbody>
		</table>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="5">
								<font size="4">2.3目标系统的业务分析</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">确定系统的核心模块：业务比较复杂或用户使用较频繁</font>
		</div>
		<div>
				<font size="2">确定模块件的耦合关系：清晰了解核心模块间数据传输方式，通过确定模块间如何接口，可以真实地模拟多用户并发时的情况，尤其可以确定用户并发时一些算法是否正确。</font>
		</div>
		<div>
				<font size="2">分析系统压力点：多是用户使用较频繁或数据流量较大的地方。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="5">
								<font size="4">2.4用户及场景分析</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">一，基于用户实际使用情况的场景测试，二，为了特殊测试目的(扩展性、稳定性)而设计的场景测试。</font>
		</div>
		<div>
				<font size="2">确定系统有多少类典型的用户，每类用户的大概数量以及在不同时间段各类用户大概按照何种比例来使用系统。较常见的用户场景有如下三种：</font>
		</div>
		<div>
				<font size="2">一天内不同时间段的使用场景</font>
		</div>
		<div>
				<font size="2">系统运行不同时期的场景</font>
		</div>
		<div>
				<font size="2">不同业务模式下的用户场景</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="5">
								<font size="4">2.5整体规划</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">性能测试规划的重点是时间、质量、成本等项目管理要素。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">2.5.1常见的性能测试工具</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">Loadrunner:是一种预测系统行为和性能的负载测试工具,目前很多公司执行性能测试的首选工具.</font>
		</div>
		<div>
				<font size="2">Rational performance: rational 系列产品之一,功能非常强大,和loadrunner竞争比较激烈.</font>
		</div>
		<div>
				<font size="2">QALoad:compu ware 公司的产品</font>
		</div>
		<div>
				<font size="2">Webload:专门用于web性能测试的工具</font>
		</div>
		<div>
				<font size="2">WAS:全称是Microsoft Web Application Stress Tool,微软提供的免费性能测试工具</font>
		</div>
		<div>
				<font size="2">Apache JMeter :开源的性能测试工具</font>
		</div>
		<div>
				<font size="2">openSTA:开源的性能测试工具</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">2.5.2测试结果记录规范管理</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">测试结果数据是分析系统瓶颈的主要依据,大量的测试结果文件要进行规范管理,统一文件的命名规范.例如:2007-1-12-dbtest-oracleserver-50-once</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">2.5.3测试环境管理与维护</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">执行性能测试尽量不要破坏用户环境,而且要预先制定相应的备份/恢复策略,以便系统发生意外时可以恢复到测试前的状态.</font>
		</div>
		<div>
				<font size="2">性能测试很有可能产生大量的垃圾数据,消除垃圾数据是测试结事后首当其冲的工作</font>
		</div>
		<div>
				<font size="2">测试时还要监控测试机的使用情况,除非保证场景消耗的资源不会超出测试机的负载能力,否则就应该认真监控测试机,因为一旦测试机发生瓶颈,所有测试结果均无实际意义.</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<u>
						<font color="#0000ff">
								<b>
										<strong>
												<font size="4">
														<font size="3">2.5.4测试分析与经验总结</font>
												</font>
										</strong>
								</b>
						</font>
				</u>
		</div>
		<div>
				<font size="2">主要关注性能测试规划与设计、测试用例设计、测试工具与技术、性能分析等方面。</font>
		</div>
		<div>
				<font size="2">性能测试用例的设计分析：可用性、执行效果、执行时间、还应该分析用例的设计方法、设计思路等。</font>
		</div>
		<div>
				<font size="2">对于瓶颈：应用系统、数据库、web服务器等有时会因配置参数不正确导致系统性能不高，可积累解决这方面问题的经验，以便于以后快速解决问题。</font>
		</div>
		<div>
				<font size="2">1．随着压力的加大，吞吐率的曲线在增加到一定的时候，出现变化缓慢，甚至平坦的状态，很有可能标明网络出现带宽瓶颈。类似地，当压力加大时，点击率/TPS曲线出现变化缓慢或平坦的趋势，很有可能服务器开始出现瓶颈。</font>
		</div>
		<div>
				<font size="2">2．吞吐率与TPS具有很强的关联性：如果随着压力的加大，吞吐率和TPS的变化呈大体一致的趋势，即一起增加，说明在测试的压力下，系统没有出现显著的性能瓶颈。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<u>
						<font color="#0000ff">
								<strong>
										<font size="5">
												<font size="4">3.1性能分析的步骤</font>
										</font>
								</strong>
						</font>
				</u>
		</div>
		<div>
				<font size="2">1．首先从响应时间做为分析性能的起点。查看响应时间以判断是否满足用户对性能的期望。</font>
		</div>
		<div>
				<font size="2">2．考察系统的瓶颈是在网络环节还是在服务器环节。</font>
		</div>
		<div>
				<font size="2">针对服务器分析主要涉及应用程序、web服务器、数据库服务器、操作系统等。</font>
		</div>
		<div>
				<font size="2">首先应该分析业务或者用户事务的响应时间，根据测试结果来分析哪些业务真正变慢了，然后分析web资源的处理情况，最后对页面组成元素的响应时间进行分解。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">3.1.1用户事务分析</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">1．查看结果综述图：查看事务的平均响应时间，以及事务的通过率</font>
		</div>
		<div>
				<font size="2">2．查看事务综述图和事务平均响应时间分析图：查看事务通过和失败的数值，来判断是程序算法出现问题还是服务器存在内存泄漏现象。</font>
		</div>
		<div>
				<font size="2">3．每秒通过事务数分析图：可确定系统在任何给定时刻的实际事务负载。当发现每秒通过的事务数减少时，就需要更加深入的分析，配合服务器监控数据一起分析。</font>
		</div>
		<div>
				<font size="2">4．事务性能摘要图：重点关注事务的平均和最大执行时间，如果其范围不在用户可以接受的时间范围内，需要进行原因分析。</font>
		</div>
		<div>
				<font size="2">5．事务响应时间与负载分析图：正在运行的虚拟用户和平均事务响应时间图的组合，通过它可以看出在任一时间点事务响应时间与用户数目的关系，从而掌握系统在用户并发方面的性能数据，为扩展应用系统提供参考，对分析具有渐变负载的测试场景比较有用。</font>
		</div>
		<div>
				<font size="2">6．事务响应时间分布情况分布图：预先定义相关事务可以接受的最小和最大事务响应时间，则可以使用此图确定服务器性能是否在可以接受的范围内。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">3.1.2web资源分析</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">1．点击率图：每秒点击次数，即点击率图显示在场景运行过程中虚拟用户每秒向web服务器提交的HTTP请求数，可依据点击次数来评估虚拟用户产生的负载量，还可将其与”平均事务响应时间”图进行比较，以查看点击次数对事务性能产生的影响。</font>
		</div>
		<div>
				<font size="2">系统点击率下降通常表明服务器的响应速度在变慢。</font>
		</div>
		<div>
				<font size="2">2．吞吐率图：显示场景运行过程中服务器每秒的吞吐量。度量单位是字节，表示虚拟用户在任何给定的某一秒上从服务器获得的数据量。</font>
		</div>
		<div>
				<font size="2">点击率：每秒服务器处理的HTTP申请数</font>
		</div>
		<div>
				<font size="2">吞吐率：客户端每秒从服务器获得的总数据量。</font>
		</div>
		<div>
				<font size="2">每秒HTTP响应数图还能返回其他各类状态码信息，通过分析状态码，可以判断服务器在压力下的运行情况。</font>
		</div>
		<div>
				<font size="2">常见的http状态代码：从200-505均有其含义。如202：已经接受请求，但处理尚未完成。</font>
		</div>
		<div>
				<font size="2">3．每秒连接数图：显示在运行过程中每秒新建立的TCP/IP连接数。新连接数应该是每秒点击次数的一小部分，理想情况下，很多的HTTP请求都应该使用同一连接，而不是每个请求都新打开一个连接。</font>
		</div>
		<div style="margin: 13pt 0cm;">
				<strong>
						<font size="4">
								<font size="3">3.1.3网页元素细分</font>
						</font>
				</strong>
		</div>
		<div>
				<font size="2">通过它可深入地分析网站上那些下载很慢的图像或中断的链接等有问题的元素。</font>
		</div>
		<div>
				<font size="2">页面分解总图：可显示某一具体事务在测试过程的响应情况，进而分析相关的事务运行是否正常。</font>
		</div>
		<div>
				<font size="2">1．下载时间细分：查看静态gif图片和动态的jsp代码。</font>
		</div>
		<div>
				<font size="2">2．组件细分（随时间变化）：可以选择不同的元素查看测试过程中其下载时间的变化曲线。适用于需要在客户端下载控制较多的页面，通过分析控件的响应时间，很容易就能发现哪些控件不稳定或者比较耗时。</font>
		</div>
		<div>
				<font size="2">3．下载时间细分（随时间变化）：查看jsp页面主要时间花在如receive,first buffer,connection等。</font>
		</div>
		<div>
				<font size="2">下载时间细分：宏观，整个测试过程页面元素响应时间的统计分析结果</font>
		</div>
		<div>
				<font size="2">下载时间细分（随时间变化）：微观，显示场景运行过程中每一秒内页面元素响应时间的统计结果。</font>
		</div>
		<div>
				<font size="2">4．第一次缓冲时间细分（随时间变化）：可查看页面运行时间主要花在服务器还是网络传输上。</font>
		</div>
		<div> </div>
		<div>
				<font size="2">服务器分析通常从web服务器和数据库服务器入手。</font>
		</div>
		<div>
				<font size="2">服务器分析的第一步，分析测试工具对web服务器和数据库服务器相关计数器的监控结果，然后确定在压力下是web服务较慢还是数据处理较慢。</font>
		</div>
		<div>
				<font size="2">Web服务较慢：查看web服务器的各种参数配置，如最大连接数、最大内存等是否设置的合理。查看内存、CPU、硬盘</font>
		</div>
		<div>
				<font size="2">数据处理较慢：一般是数据库配置发生问题，或是硬件资源配置太低。如oracle,要查看内存配置、运行模式等信息。</font>
		</div> <div style="margin: 13pt 0cm;"><strong><font size="5"><font size="4">4.1数据库调优策略</font></font></strong></div><div><font size="2">1．修改sql语句中影响速度的写法</font></div><div><font size="2">2．增加或者修改索引</font></div><div><font size="2"><span>   </span>针对表间的连接创建索引</font></div><div><font size="2"><span>   </span>针对查找建立索引</font></div><div><font size="2"><span>   </span>使用索引时，遵守以下原则可达到更好的效果</font></div><div><font size="2"><span>   </span>第一：一般建立在多个字段上的一个组合索引优于针对单个字段建立的多个索引，根据值匹配条件创建的索引也需要遵循同样的原则：</font></div><div><font size="2"><span>   </span>第二：创建组合索引时，精确匹配的字段放在非精确匹配字段前面，取值范围大的字段放在取值范围小的字段前面，可以提高查询速度，如身份证字段应该放在性别字段前面。</font></div><div><font size="2"><span>   </span>第三：索引并不是越多越好，当数据库记录较多时，意味着数据库要付出的开销将会很大，从而降低数据库其他方面的性能。</font></div><div><font size="2">3．调整相应数据库的系统参数（系统投产生的调优，通常由厂商的配合完成）</font></div><div><font size="2">一般检查项为：复杂语句支持，大对象功能支持，并发查询性能，吞吐量，数据迁移（导出备份）。</font></div><div style="margin: 13pt 0cm;"><strong><font size="5"><font size="4">4.2weblogic/oracle相关分析</font></font></strong></div><div><font size="2">主要监控：%processor, Avalable Mbytes(空闲内存), JVM内存，connection Delay Time（数据库连接池建立数据库连接的时间）</font></div><div><font size="2">Oracle运行平台AIX监控（unix），cpu的使用率（cpu utilization），disk traltic(磁盘负载)，page-in,page-out rate的使用情况。</font></div><div><font size="2">以及oracle本身相关报告：相看缓冲区调整缓存，应用程序的i/o操作。</font></div><div style="margin: 13pt 0cm;"><strong><font size="5"><font size="4">4.3性能测试用例设计要基于用户语言</font></font></strong></div><div><font size="2">即
满足用户要求又相对全面的性能测试用例，设计时要基于“用户语言”，易于用户理解的、大纲形式的测试用例，这样涉及的技术语言不多，用户很容易看懂。这样
使得用户在现场测试阶段能够提出很多改进建议，并同意对用例进行调整（删减近一半的用例），可以为后期执行测试节约成本。</font></div><div><font size="2">性能测试实施的特点之一就是不会严格按照测试用例来执行，通常是在项目中对用户进行一定的调整，然后再去执行，对于测试用例进行调整，删除、修改、增加，这是很正常的，基本成本来进行设计和执行。</font></div><div><font size="2">                                   共计四篇,摘自&lt;&lt;web性能测试实战&gt;&gt;</font></div><div><font size="2">备注:只为方便自已查阅,对于文中增删不全的地方,如果感兴趣建议查看原文,同时欢迎大家交流讨论!</font></div><br /><br /><p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1735726</p><img src ="http://www.cnitblog.com/tjitty/aggbug/41816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2008-04-02 14:22 <a href="http://www.cnitblog.com/tjitty/archive/2008/04/02/41816.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几个很实用的函数</title><link>http://www.cnitblog.com/tjitty/archive/2008/03/21/41286.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Fri, 21 Mar 2008 02:31:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2008/03/21/41286.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/41286.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2008/03/21/41286.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/41286.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/41286.html</trackback:ping><description><![CDATA[
		<blockquote class="indent">
				<a name="wp17692">
				</a>
				<h2 class="pn2Heading">Correlating Statements Functions </h2>
				<a name="wp17715">
				</a>
				<p class="pRegtext">Click one of the following functions for more information:</p>
				<div align="left">
						<table class="indent" id="wp17698table17693" cellspacing="0" cellpadding="5" border="1">
								<caption>
								</caption>
								<tbody>
										<tr align="left">
												<td>
														<a name="wp17698">
														</a>
														<div class="pTable_column">
																<a href="mk:@MSITStore:C:\Program%20Files\Mercury%20Interactive\Mercury%20LoadRunner\bin\funcref_4.chm::/lrs_save_param.html">
																		<b class="cBold">lrs_save_param</b>
																</a>
														</div>
												</td>
												<td>
														<a name="wp17700">
														</a>
														<div class="pTable_column">Saves data from a static or received buffer to a parameter. </div>
												</td>
										</tr>
										<tr align="left">
												<td>
														<a name="wp17705">
														</a>
														<div class="pTable_column">
																<a href="mk:@MSITStore:C:\Program%20Files\Mercury%20Interactive\Mercury%20LoadRunner\bin\funcref_4.chm::/lrs_save_param_ex.html">
																		<b class="cBold">lrs_save_param_ex</b>
																</a>
														</div>
												</td>
												<td>
														<a name="wp17707">
														</a>
														<div class="pTable_column">Saves data from a static, received, or user buffer to a parameter. </div>
												</td>
										</tr>
										<tr align="left">
												<td>
														<a name="wp17712">
														</a>
														<div class="pTable_column">
																<a href="mk:@MSITStore:C:\Program%20Files\Mercury%20Interactive\Mercury%20LoadRunner\bin\funcref_4.chm::/funcref_4_winsocket_58.html">
																		<b class="cBold">lrs_save_searched_string</b>
																</a>
																<b class="cBold">
																</b>
														</div>
												</td>
												<td>
														<a name="wp17714">
														</a>
														<div class="pTable_column">Searches for an occurrence of strings in a static or received buffer and saves a portion of the buffer, relative to the string occurrence, to a parameter. </div>
												</td>
										</tr>
								</tbody>
						</table>
				</div>
				<p class="pRegtext">
				</p>
				<table class="indent" id="wp17723table17718" cellspacing="0" cellpadding="5" border="1">
						<tbody>
								<tr align="left">
										<td>
												<a name="wp17737">
												</a>
												<div class="pTable_column">
														<a href="mk:@MSITStore:C:\Program%20Files\Mercury%20Interactive\Mercury%20LoadRunner\bin\funcref_4.chm::/funcref_4_winsocket_68.html">
																<b class="cBold">lrs_set_recv_timeout</b>
														</a>
												</div>
										</td>
										<td>
												<a name="wp17739">
												</a>
												<div class="pTable_column">Sets a timeout for receiving the expected data on a socket.</div>
										</td>
								</tr>
								<tr align="left">
										<td>
												<a name="wp17744">
												</a>
												<div class="pTable_column">
														<a href="mk:@MSITStore:C:\Program%20Files\Mercury%20Interactive\Mercury%20LoadRunner\bin\funcref_4.chm::/funcref_4_winsocket_70.html">
																<b class="cBold">lrs_set_recv_timeout2</b>
														</a>
												</div>
										</td>
										<td>
												<a name="wp17746">
												</a>
												<div class="pTable_column">Sets a second timeout for receiving data on a socket. </div>
										</td>
								</tr>
						</tbody>
				</table>
		</blockquote>
<img src ="http://www.cnitblog.com/tjitty/aggbug/41286.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2008-03-21 10:31 <a href="http://www.cnitblog.com/tjitty/archive/2008/03/21/41286.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTTP 状态代码</title><link>http://www.cnitblog.com/tjitty/archive/2008/03/18/41100.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Tue, 18 Mar 2008 07:21:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2008/03/18/41100.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/41100.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2008/03/18/41100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/41100.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/41100.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 代码																																																																																																																		描述																																																代码...&nbsp;&nbsp;<a href='http://www.cnitblog.com/tjitty/archive/2008/03/18/41100.html'>阅读全文</a><img src ="http://www.cnitblog.com/tjitty/aggbug/41100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2008-03-18 15:21 <a href="http://www.cnitblog.com/tjitty/archive/2008/03/18/41100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>How to detect memory leaks with LoadRunner</title><link>http://www.cnitblog.com/tjitty/archive/2008/03/17/41028.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Mon, 17 Mar 2008 03:31:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2008/03/17/41028.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/41028.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2008/03/17/41028.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/41028.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/41028.html</trackback:ping><description><![CDATA[
		<p>===http://motevich.blogspot.com/2007/08/how-to-detect-memory-leaks-with.html</p>
		<p>===Great Work!<br /></p>
		<p>Today, I plan to share my experience on the memory leaks detecting. This article is a step-by-step instruction on how to use HP/Mercury <a onclick="javascript:tagshow(event, 'LoadRunner');" href="javascript:;" target="_self"><u><strong>LoadRunner</strong></u></a> to perform load testing for the purpose of memory leaks discovering.<br /><br /><br /><span style="FONT-WEIGHT: bold; FONT-STYLE: italic">The task</span>:<br />It needs perform testing of Web server to discover memory leaks.<br /><br /><span style="FONT-WEIGHT: bold; FONT-STYLE: italic">The solution</span>:<br /></p>
		<ol>
				<li>Create LoadRunner VuGen scrīpt for your application (Web server in my scrīpt)<br />Let's suppose, we have done it:<br /><a href="http://bp0.blogger.com/_fjL89jPDk9E/RsWcrKjNPlI/AAAAAAAAADo/cHPjaieuF5I/s1600-h/c_VuGen_scrīpt.jpg" ōnblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5099654418447285842" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp0.blogger.com/_fjL89jPDk9E/RsWcrKjNPlI/AAAAAAAAADo/cHPjaieuF5I/s400/c_VuGen_scrīpt.jpg" border="0" /></a><br />Actually, I will explain different tricks and features of VuGen scrīpts in the further posts.<br /></li>
				<li>Create LoadRunner Controller scenario for your application using the VuGen scrīpts.<br />Here it is:<br /><a href="http://bp0.blogger.com/_fjL89jPDk9E/RsQAuajNPbI/AAAAAAAAAB8/L-f_9HbzRuQ/s1600-h/c_scenario.jpg" ōnblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5099201475491216818" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp0.blogger.com/_fjL89jPDk9E/RsQAuajNPbI/AAAAAAAAAB8/L-f_9HbzRuQ/s400/c_scenario.jpg" border="0" /></a><br /></li>
				<li>The next step is to add measurement monitors which are quantitative indicators of resources being monitored (for example, memory usage, CPU usage, handle and thread count, and so on).<br />For that, on "Run" tab in the LoadRunner Controller, drag "<a onclick="javascript:tagshow(event, 'Windows');" href="javascript:;" target="_self"><u><strong>Windows</strong></u></a> Resources" item from the "Available Graphs" tree and drop it to graphs area.<br />See the screenshot:<br /><a href="http://bp2.blogger.com/_fjL89jPDk9E/RsQBG6jNPcI/AAAAAAAAACE/_1Icyx_pizY/s1600-h/c_drap_and_drop_graph.jpg" ōnblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5099201896398011842" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp2.blogger.com/_fjL89jPDk9E/RsQBG6jNPcI/AAAAAAAAACE/_1Icyx_pizY/s400/c_drap_and_drop_graph.jpg" border="0" /></a><br />Then right-click on the just added graph ("Windows Resources") and select "Add Measurements" from the pop-up menu.<br />"Windows Resources" dialog will be shown:<br /><a href="http://bp3.blogger.com/_fjL89jPDk9E/RsP_JajNPYI/AAAAAAAAABk/4BmFOUW5Dq4/s1600-h/c_win_resources_dlg.jpg" ōnblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5099199740324429186" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_fjL89jPDk9E/RsP_JajNPYI/AAAAAAAAABk/4BmFOUW5Dq4/s400/c_win_resources_dlg.jpg" border="0" /></a><br />The following actions are easy. I will add the name of server where the application (Web server in my case) will be run. This server can be a remote one. In this case, you have to make sure that LoadRunner will have an access to get info from the remote computer. Usually, I provide administrator rights for user which executes LR scrīpts.<br />After that I select counters I want to measure during the load testing:<br /><a href="http://bp2.blogger.com/_fjL89jPDk9E/RsP_3KjNPaI/AAAAAAAAAB0/C50q-EHS3dI/s1600-h/c_counters.jpg" ōnblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5099200526303444386" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp2.blogger.com/_fjL89jPDk9E/RsP_3KjNPaI/AAAAAAAAAB0/C50q-EHS3dI/s400/c_counters.jpg" border="0" /></a><br />So, "Windows Resources" dialog looks like:<br /><a href="http://bp3.blogger.com/_fjL89jPDk9E/RsP-_ajNPXI/AAAAAAAAABc/Y_xkh7QtxHM/s1600-h/c_win_resources_dlg_filled.jpg" ōnblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5099199568525737330" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_fjL89jPDk9E/RsP-_ajNPXI/AAAAAAAAABc/Y_xkh7QtxHM/s400/c_win_resources_dlg_filled.jpg" border="0" /></a><br />I selected the following counters:<br /><ul><li>% User Time for two processes (RService &amp; tomcat5) and the whole system (_Total) 
</li><li>Available bytes in the system 
</li><li>Handle counts 
</li><li>Thread counts<br /></li><li>Working Sets </li></ul>Also you may wish to add "Private Bytes" counter. Descrīption for each counter is available on "Windows Resources" dialog. Obviously that the set of counters depends on the requirements and software to be tested.<br /><br />Pay attention... If you select the "Windows Resources" graph, the list of counters will be shown in the lower part of the LoadRunner Controller:<br /><a href="http://bp2.blogger.com/_fjL89jPDk9E/RsP_hKjNPZI/AAAAAAAAABs/lYG6oQVD_vc/s1600-h/c_list_of_counters.jpg" ōnblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5099200148346322322" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp2.blogger.com/_fjL89jPDk9E/RsP_hKjNPZI/AAAAAAAAABs/lYG6oQVD_vc/s400/c_list_of_counters.jpg" border="0" /></a><br /></li>
				<li>Our mission is almost complete :) We have to run the scenario against a number of concurrent users (I user 30 users) and observe the graph displaying info on memory, CPU, handles and so on...<br />I will show the result graph after 4 hrs of execution:<br /><a href="http://bp3.blogger.com/_fjL89jPDk9E/RsP-oajNPWI/AAAAAAAAABU/vTgWXmEXBM8/s1600-h/results.jpg" ōnblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5099199173388746082" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_fjL89jPDk9E/RsP-oajNPWI/AAAAAAAAABU/vTgWXmEXBM8/s400/results.jpg" border="0" /></a><br />Pay attention to the yellow dotted line (memory usage of "RService" process) and the brown dotted line (habdle count counsumed by "RService" process) trends. They grow constantly during ~ 4.5 hours. I marked them out with red lines.<br />So, this graph provides proofs that the application, I tested, contains memory leaks in the "RService" process.<br /><br />Several words about useful tricks and hints, connected to measurements ans graphs:<br /><ul><li>It is possible to export graphs to HTML from the LR. For that, right-click on the graph and select "Export to HTML...". It will generate HTML report containing the graph and a legenda for it. Very useful feature :) 
</li><li>I recommend to set the range of time to be shown on the graph, to "Relative to scenario start". To perform this, right-click on the graph and select "Configure...". That allow to display statistics for the whole execution, but the latest N minutes.<br /></li><li>Sometimes, it is convenient to show more detailed graph. For that, double click on the graph - one big graph will be shown. To revert, double-click again. Also, you can change the number of graphs displayed - open menu View/View Graphs and set the required number.<br /><br /></li></ul></li>
				<li>So, now Dev team has to fix the problem in the "RService" process.. The last graph shows the results of load testing perfomed on the fixed application:<br /><a href="http://bp0.blogger.com/_fjL89jPDk9E/RsP92qjNPVI/AAAAAAAAABM/XWZriLBJ-qo/s1600-h/results_fixed.jpg" ōnblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5099198318690254162" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp0.blogger.com/_fjL89jPDk9E/RsP92qjNPVI/AAAAAAAAABM/XWZriLBJ-qo/s400/results_fixed.jpg" border="0" /></a><br />No any memory leaks found during 10 hrs.<br /><br />Memory leaks fixed! Isn't it a progress? :)</li>
		</ol>
		<br />
		<br />I hope, my explanation will be helpfull for you :)<br />Please, share your comments and thoughts. Ideas for further topics - welcome :)<br /><br />Dmitry Motevich,<br />QA / Automated testing specialist<br /><img src ="http://www.cnitblog.com/tjitty/aggbug/41028.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2008-03-17 11:31 <a href="http://www.cnitblog.com/tjitty/archive/2008/03/17/41028.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LoadRunner测试过程中调用dll文件的制作与使用</title><link>http://www.cnitblog.com/tjitty/archive/2008/03/13/40891.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Thu, 13 Mar 2008 11:41:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2008/03/13/40891.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/40891.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2008/03/13/40891.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/40891.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/40891.html</trackback:ping><description><![CDATA[
		<p>         在Windows操作系统中使用DLL有很多优点，最主要的一点是多个应用程序、甚至是不同语言编写的应用程序可以共享一个DLL文件，真正实现了资源"共享"，大大缩小了应用程序的执行代码，更加有效的利用了内存；使用DLL的另一个优点是DLL文件作为一个单独的程序模块，封装性、独立性好，在软件需要升级的时候，开发人员只需要修改相应的DLL文件就可以了，而且，当DLL中的函数改变后，只要不是参数的改变,程序代码并不需要重新编译。这在编程时十分有用，大大提高了软件开发和维护的效率。 </p>
		<p>       在LR下也可以直接调用动态链接库文件，针对一些使用LR脚本编写比较烦琐的方法可以考虑此方法（比如各种加解密算法的实现，数据库的操作等），并能够使测试脚本简单明了。鉴于此，本人初次尝试了如何制作DLL文件并在LR中使用。</p>
		<p>       1、dll文件的制作</p>
		<p>       在Visual C++6.0开发环境下，打开File-New-Project选项，可以选择Win32 Dynamic-Link Library来创建一个名为dllfortest的空的dll工程（这只是方法之一）。</p>
		<p>       在该项目中新建一个dllfortest.h和dllfortest.cpp文件，文件的内容如下:</p>
		<p>//dllfortest.h</p>
		<p>extern "C" _declspec(dllexport) int Max(int a, int b, int c); </p>
		<p>extern "C" _declspec(dllexport) int Min(int a, int b, int c); </p>
		<p> </p>
		<p>//dllfortest.cpp  包含一个计算三个整数中最大值和最小值的方法</p>
		<p>#include"dllfortest.h" </p>
		<p>int Max(int a, int b, int c) </p>
		<p>{ </p>
		<p>       int Res;</p>
		<p>       Res = (a&gt;b? a:b)&gt;c? (a&gt;b? a:b):c;</p>
		<p>       return Res;</p>
		<p>} </p>
		<p>int Min(int a, int b, int c)</p>
		<p>{</p>
		<p>       int Res;</p>
		<p>       Res = (a&gt;b? b:a)&gt;c? c:(a&gt;b? b:a);</p>
		<p>       return Res;</p>
		<p>}</p>
		<p>该动态链接库编译成功后，打开dllfortest工程目录下的debug目录下，可以看到生成了一个dllfortest.dll文件，这就是我们想要的文件。</p>
		<p>       2、dll文件在LR中的调用</p>
		<p>       打开LR VU Generator，选择C Vuser协议（或其他支持C的协议），进入编辑界面。Action部分如下所示：</p>
		<p>Action()</p>
		<p>{</p>
		<p>       lr_load_dll("dllfortest.dll");</p>
		<p>       lr_message("Max Result is %d",Max(100,200,67));</p>
		<p>       lr_message("Min Result is %d",Min(55,97,63));</p>
		<p>       return 0;</p>
		<p>}</p>
		<p>将dllfortest.dll文件复制到脚本所在的目录（如果不复制的话，lr_load_dll的参数应该写成dll文件的绝对路径），如果编译没有报错的话，就可以直接运行了。</p>
		<p>运行结果如下：</p>
		<p>Virtual User scrīpt started</p>
		<p>Starting action vuser_init.</p>
		<p>Ending action vuser_init.</p>
		<p>Running Vuser...</p>
		<p>Starting iteration 1.</p>
		<p>Starting action Action.</p>
		<p>Max Result is 200</p>
		<p>Min Result is 55</p>
		<p>Ending action Action.</p>
		<p>Ending iteration 1.</p>
		<p>Ending Vuser...</p>
		<p>Starting action vuser_end.</p>
		<p>Ending action vuser_end.</p>
		<p>Vuser Terminated.</p>
		<p> </p>
		<p>如果在脚本中用到了DLL文件中并不存在的方法名时，编译也能通过，但是运行时LR会报错，提示不存在该方法</p>
		<p>比如我们在脚本中添加一句：</p>
		<p>       lr_message("Min Result is %d",Sum(55,97,63));  //Sum方法并不存在</p>
		<p>运行时错误信息如下：</p>
		<p>Action.c(7): Error: C interpreter run time error: Action.c (7):  Error -- Unresolved symbol : Sum.</p>
		<p>Action.c(7): Notify: CCI trace: Compiled_code(0): Action()</p>
		<p>.</p>
		<p>这个例子并没有体现出DLL文件调用的优点，因为调用的方法在LR中用C直接就可以完成，但涉及到LR中完不成的任务时，或许dll文件的作用就体现出来了<br /><br /><strong><font color="#ff3300">example：</font></strong><br />LoadRunner提供了功能强大的API集合，足够应付大多数性能测试的需求。但在某些情况下，这些API仍然有覆盖不到的地方。例如，我们有一个WEB应用，该应用有一个页面输入用户的信息，为了安全起见，用户输入的信息在提交之前都要先进行加密处理，加密处理通过本地的COM组件实现。</p>
		<p>对这个要求而言，LoadRunner的现有API不能提供直接支持，因为LoadRunner在录制脚本时只录制数据交互，因此，COM的加密处理过程是不能录制下来的。在LoadRunner的脚本中，可能只有类似以下的语句描述了这个过程：</p>
		<p>…………<br />web_url("userinfo", <br />    "URL=http://testweb/userinfo.aspx", <br />    "TargetFrame=", <br />    "Resource=0", <br />     "Referer=", <br />     LAST); </p>
		<p>web_submit_form("login ",<br />"Snapshot=t4.inf",<br />ITEMDATA,<br />"Name=username", "Value=4e92Sh6d394g", ENDITEM,<br />"Name=password", "Value=932A2hf34U18", ENDITEM,<br />LAST);<br />…………</p>
		<p>从脚本可以看到，输入的数据是加密后的数据，但LR没有录制到加密过程。</p>
		<p>假设加密函数所在的DLL名为security.dll，用于加密的函数名为encode，则一种可能的对脚本的修改方法如下代码所示。<br />…………<br />char *encode_username, *encode_password, *orgin_username, *orgin_password;<br />char* uservalue, passvalue;<br />int ret;<br />……<br />web_url("userinfo", <br />     "URL=http://testweb/userinfo.aspx", <br />     "TargetFrame=", <br />     "Resource=0", <br />      "Referer=", <br />      LAST); </p>
		<p>orgin_username = lr_eval_string(“{ username }”); //获取参数的值<br />orgin_password = lr_eval_string(“{ password }”);</p>
		<p>ret = lr_load_dll(“security.dll”);   //加载DLL库</p>
		<p>encode(origin_username, encode_username);  //调用encode函数<br />encode(origin_password, encode_password);</p>
		<p>
				<br />sprintf(uservalue, “Value=%s”, encode_username);<br />sprintf(passvalue, “value=%s”, encode_password);</p>
		<p>web_submit_form("login ",<br />  "Snapshot=t4.inf",<br />  ITEMDATA,<br />  "Name=username", uservalue, ENDITEM,<br />  "Name=password", passvalue, ENDITEM,<br />  LAST);<br /><br /><br /><u><font color="#0000ff">注意：有些脚本录制需要相应的patch的支持，如录制DotNet编写的应用程序你需要把lr78安装盘\ Patches\Trap_for_.net_patch文件夹中trpfnc32.32dll拷贝到loadrunner\bin路径下，才能正常工作。</font></u></p>
<img src ="http://www.cnitblog.com/tjitty/aggbug/40891.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2008-03-13 19:41 <a href="http://www.cnitblog.com/tjitty/archive/2008/03/13/40891.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常见系统资源Monitor问题</title><link>http://www.cnitblog.com/tjitty/archive/2008/03/12/40838.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Wed, 12 Mar 2008 03:53:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2008/03/12/40838.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/40838.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2008/03/12/40838.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/40838.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/40838.html</trackback:ping><description><![CDATA[
		<p>常见系统资源Monitor问题</p>
		<p>最近老是看见有tx对在Controller中添加系统资源Monitor连接不上的问题，为此查了Controller的说明，上面对以下情况作了解释，同学们看看，应该大部分问题都能解决了。反正还是建议大家要多看看帮助，呵呵</p>
		<p>监控windows配置：<br />一  windows</p>
		<p>  1  监视连接前的准备工作</p>
		<p>      首先保证被监视的windows系统开启以下二个服务Remote Procedure Call(RPC)   和Remote Registry Service   (这里具体在那里开起服务就不说了)</p>
		<p>   被监视的WINDOWS机器:右击我的电脑,选择管理-&gt;共享文件夹-&gt;共享  在这里面要有C$这个共享文件夹,(要是没有自己手动加)</p>
		<p>     然后保证在安装LR的机器上使用运行.输入\\被监视机器IP\C$  然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了</p>
		<p>   <br />  说明: LR要连接WINDOWS机器进行监视貌似要有管理员帐号和密码才行,</p>
		<p>
				<br />2  用LR监视windows的步骤</p>
		<p>      (这里就不详细说明了,只要在窗口中右击鼠标选择Add Measurements就可以了)</p>
		<p> </p>
		<p>Q1：无法Monitor在另一个domain的Windows主机或者报错"Access Denied"<br />A1：获取远程主机的管理员权限，在命令行模式下运行如下命令<br />        Net use \\&lt;主机名&gt;<br />        在弹出的用户名提示后输入远程主机的用户名，在弹出的密码提示后输入远程主机密码</p>
		<p>Q2：无法Monitor一个NT/2000的主机，报错"computer name not found"或"connot connect to the host"<br />A2：远程主机只允许具有管理员权限的用户Monitor资源，若需要非管理员也能够获得资源信息，需要手工授权"Read"权限给某些文件和注册表项。具体步骤如下：<br />1、        授权给用户以下文件的读权限<br />a)        %windir%\system32\PERFCxxx.DAT<br />b)        %windir%\system32\PERFHxxx.DAT<br />其中xxx是系统的基础语言id，如英语就是009，如果找不到文件，最好从安装光盘中copy出来<br />2、        在注册表中查找以下表项并授予读权限<br />HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Perflib以及其子项<br />3、        在注册表中查找以下表项并授予读权限<br />HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurePipeServers\winreg</p>
		<p>Q3：从WinNT主机上无法获得一些Win2000下的计数器<br />A3：在Win2000主机上运行Controller或Tuning</p>
		<p>Q4：一些Windows的默认计数器报错<br />A4：把报错的计数器删除并添加更合适的计数器</p>
		<p>Q5：无法获得目标主机上SQL Server（version 6.5）的性能计数器<br />A5：这是6.5版本的SQL Server的一个bug，需要手工在被监控主机的注册表中赋予以下表项读权限<br />HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer</p>
		<p>Q6：选中的measurement参数没有显示在图表中<br />A6：确定display file和online.exe已经被注册。运行loadrunner\bin下的set_mon.bat文件</p>
		<p>Q7：在Monitor Windows主机时，在图表中没有出现任何参数<br />A7：查看Windows主机中的Windows Performance Monitor，如果没有出错，则查看通讯设置</p>
		<p>Q8：在Monitor Unix主机时，在图表中没有出现任何参数<br />A8：确保Unix主机上rstated进程已经运行</p>
		<p>Q9：无法监控如下的Web服务器：Web IIS、MS ASP、ColdFusion<br />A9：同Q7</p>
		<p>Q10：无法监控WebLogic（JMX）服务器<br />A10：打开LoadRunner\dat\monitors\WebLogicMon.ini文件，查找以下字符串：<br />[WebLogicMonitor]<br />JVM=javaw.exe<br />把javaw.exe替换成java.exe<br /></p>
<img src ="http://www.cnitblog.com/tjitty/aggbug/40838.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2008-03-12 11:53 <a href="http://www.cnitblog.com/tjitty/archive/2008/03/12/40838.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>性能分析名词解释——LoadRunner</title><link>http://www.cnitblog.com/tjitty/archive/2008/03/12/40837.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Wed, 12 Mar 2008 03:50:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2008/03/12/40837.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/40837.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2008/03/12/40837.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/40837.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/40837.html</trackback:ping><description><![CDATA[
		<p>Transactions（用户事务分析）<br />用户事务分析是站在用户角度进行的基础性能分析。<br />1、Transation Sunmmary（事务综述）<br />对事务进行综合分析是性能分析的第一步，通过分析测试时间内用户事务的成功与失败情况，可以直接判断出系统是否运行正常。<br />2、Average Transaciton Response Time（事务平均响应时间）<br />“事务平均响应时间”显示的是测试场景运行期间的每一秒内事务执行所用的平均时间，通过它可以分析测试场景运行期间应用系统的性能走向。<br />例：随着测试时间的变化，系统处理事务的速度开始逐渐变慢，这说明应用系统随着投产时间的变化，整体性能将会有下降的趋势。<br />3、Transactions per Second（每秒通过事务数/TPS）<br />“每秒通过事务数/TPS”显示在场景运行的每一秒钟，每个事务通过、失败以及停止的数量，使考查系统性能的一个重要参数。通过它可以确定系统在任何给定时刻的时间事务负载。分析TPS主要是看曲线的性能走向。<br />将它与平均事务响应时间进行对比，可以分析事务数目对执行时间的影响。<br />例：当压力加大时，点击率/TPS曲线如果变化缓慢或者有平坦的趋势，很有可能是服务器开始出现瓶颈。<br />4、Total Transactions per Second（每秒通过事务总数）<br />“每秒通过事务总数”显示在场景运行时，在每一秒内通过的事务总数、失败的事务总署以及停止的事务总数。<br />5、Transaction Performance Sunmmary（事务性能摘要）<br />“事务性能摘要”显示方案中所有事务的最小、最大和平均执行时间，可以直接判断响应时间是否符合用户的要求。<br />重点关注事务的平均和最大执行时间，如果其范围不在用户可以接受的时间范围内，需要进行原因分析。<br />6、Transaction Response Time Under Load（事务响应时间与负载）<br />“事务响应时间与负载”是“正在运行的虚拟用户”图和“平均响应事务时间”图的组合，通过它可以看出在任一时间点事务响应时间与用户数目的关系，从而掌握系统在用户并发方面的性能数据，为扩展用户系统提供参考。此图可以查看虚拟用户负载对执行时间的总体影响，对分析具有渐变负载的测试场景比较有用。<br />7、Transaction Response Time(Percentile)（事务响应时间(百分比)）<br />“事务响应时间(百分比)”是根据测试结果进行分析而得到的综合分析图，也就是工具通过一些统计分析方法间接得到的图表。通过它可以分析在给定事务响应时间范围内能执行的事务百分比。<br />8、Transaction Response Time(Distribution)（事务响应时间(分布)）<br />“事务响应时间(分布)”显示在场景运行过程中，事务执行所用时间的分布，通过它可以了解测试过程中不同响应时间的事务数量。如果系统预先定义了相关事务可以接受的最小和最大事务响应时间，则可以使用此图确定服务器性能是否在可以接受的范围内。</p>
		<p>Web Resources（Web资源分析）<br />Web资源分析是从服务器入手对Web服务器的性能分析。<br />1、Hits per Second（每秒点击次数）<br />“每秒点击次数”，即使运行场景过程中虚拟用户每秒向Web服务器提交的HTTP请求数。<br />通过它可以评估虚拟用户产生的负载量，如将其和“平均事务响应时间”图比较，可以查看点击次数对事务性能产生的影响。通过对查看“每秒点击次数”，可以判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢，需进一步分析，发现系统瓶颈所在。<br />2、Throughput（吞吐率）<br />“吞吐率”显示的是场景运行过程中服务器的每秒的吞吐量。其度量单位是字节，表示虚拟用在任何给定的每一秒从服务器获得的数据量。<br />可以依据服务器的吞吐量来评估虚拟用户产生的负载量，以及看出服务器在流量方面的处理能力以及是否存在瓶颈。<br />“吞吐率”图和“点击率”图的区别：<br />“吞吐率”图，是每秒服务器处理的HTTP申请数。<br />“点击率”图，是客户端每秒从服务器获得的总数据量。<br />3、HTTP Status Code Summary（HTTP状态代码概要）<br />“HTTP状态代码概要”显示场景或会话步骤过程中从Web服务器返回的HTTP状态代码数，该图按照代码分组。HTTP状态代码表示HTTP请求的状态。<br />4、HTTP Responses per Second（每秒HTTP响应数）<br />“每秒HTTP响应数”是显示运行场景过程中每秒从Web服务器返回的不同HTTP状态代码的数量，还能返回其它各类状态码的信息，通过分析状态码，可以判断服务器在压力下的运行情况，也可以通过对图中显示的结果进行分组，进而定位生成错误的代码脚本。<br />5、Pages Downloader per Second（每秒下载页面数）<br />“每秒下载页面数”显示场景或会话步骤运行的每一秒内从服务器下载的网页数。使用此图可依据下载的页数来计算Vuser生成的负载量。<br />和吞吐量图一样，每秒下载页面数图标是Vuser在给定的任一秒内从服务器接收到的数据量。但是吞吐量考虑的各个资源极其大小（例，每个GIF文件的大小、每个网页的大小）。而每秒下载页面数只考虑页面数。<br />注：要查看每秒下载页数图，必须在R-T-S那里设置“每秒页面数(仅HTML模式)”。<br />6、Retries per Second（每秒重试次数）<br />“每秒重试次数”显示场景或会话步骤运行的每一秒内服务器尝试的连接次数。<br />在下列情况将重试服务器连接：<br />A、初始连接未经授权<br />B、要求代理服务器身份验证<br />C、服务器关闭了初始连接<br />D、初始连接无法连接到服务器<br />E、服务器最初无法解析负载生成器的IP地址<br />7、Retries Summary（重试次数概要）<br />“重试次数概要”显示场景或会话步骤运行过程中服务器尝试的连接次数，它按照重试原因分组。将此图与每秒重试次数图一起使用可以确定场景或会话步骤运行过程中服务器在哪个时间点进行了重试。<br />8、Connections（连接数）<br />“连接数”显示场景或会话步骤运行过程中每个时间点打开的TCP/IP连接数。<br />借助此图，可以知道何时需要添加其他连接。<br />例：当连接数到达稳定状态而事务响应时间迅速增大时，添加连接可以使性能得到极大提高（事务响应时间将降低）。<br />9、Connections Per Second（每秒连接数）<br />“每秒连接数”显示方案在运行过程中每秒建立的TCP/IP连接数。<br />理想情况下，很多HTTP请求都应该使用同一连接，而不是每个请求都新打开一个连接。通过每秒连接数图可以看出服务器的处理情况，就表明服务器的性能在逐渐下降。<br />10、SSLs Per Second（每秒SSL连接数）<br />“每秒SSL连接数”显示场景或会话步骤运行的每一秒内打开的新的以及重新使用的SSL连接数。当对安全服务器打开TCP/IP连接后，浏览器将打开SSL连接。</p>
		<p>Web Page Breakdown（网页元素细分）<br />“网页元素细分”主要用来评估页面内容是否影响事务的响应时间，通过它可以深入地分析网站上那些下载很慢的图形或中断的连接等有问题的<br />元素。<br />1、Web Page Breakdown（页面分解总图）<br />“页面分解”显示某一具体事务在测试过程的响应情况，进而分析相关的事务运行是否正常。<br />“页面分解”图可以按下面四种方式进行进一步细分：<br />1)、Download Time Breaddown（下载时间细分）<br />“下载时间细分”图显示网页中不同元素的下载时间，同时还可按照下载过程把时间进行分解，用不同的颜色来显示DNS解析时间、建立连接时间、第一次缓冲时间等各自所占比例。<br />2)、Component Breakdown(Over Time)（组件细分(随时间变化)）<br />“组件细分”图显示选定网页的页面组件随时间变化的细分图。通过该图可以很容易的看出哪些元素在测试过程中下载时间不稳定。该图特别适用于需要在客户端下载控件较多的页面，通过分析控件的响应时间，很容易就能发现那些控件不稳定或者比较耗时。<br />3)、Download Time Breakdown(Over Time)（下载时间细分(随时间变化)）<br />“下载时间细分(随时间变化)” 图显示选定网页的页面元素下载时间细分（随时间变化）情况，它非常清晰地显示了页面各个元素在压力测试过程中的下载情况。<br />“下载时间细分”图显示的是整个测试过程页面元素响应的时间统计分析结果，“下载时间细分(随时间变化)”显示的事场景运行过程中每一秒内页面元素响应时间的统计结果，两者分别从宏观和微观角度来分析页面元素的下载时间。<br />4)、Time to First Buffer Breakdown(Over Time)（第一次缓冲时间细分(随时间变化)）<br />“第一次缓冲时间细分(随时间变化)”图显示成功收到从Web服务器返回的第一次缓冲之前的这段时间，场景或会话步骤运行的每一秒中每个网页组件的服务器时间和网络时间（以秒为单位）。可以使用该图确定场景或会话步骤运行期间服务器或网络出现问题的时间。<br />First Buffer Time：是指客户端与服务器端建立连接后，从服务器发送第一个数据包开始计时，数据经过网络传送到客户端，到浏览器接收到第一个缓冲所用的时间。<br />2、Page Component Breakdown（页面组件细分）<br />“页面组件细分”图显示每个网页及其组件的平均下载时间（以秒为单位）。可以根据下载组件所用的平均秒数对图列进行排序，通过它有助于隔离有问题的组件。<br />3、Page Component Breakdown(Over Time)（页面组件分解(随时间变化)）<br />“页面组件分解(随时间变化)”图显示在方案运行期间的每一秒内每个网页及其组件的平均响应时间 （以秒为单位）。<br />4、Page Download Time Breakdown（页面下载时间细分）<br />“页面下载时间细分”图显示每个页面组件下载时间的细分，可以根据它确定在网页下载期间事务响应时间缓慢是由网络错误引起还是由服务器错误引起。<br />“页面下载时间细分”图根据DNS解析时间、连接时间、第一次缓冲时间、SSL握手时间、接收时间、FTP验证时间、客户端时间和错误时间来对每个组件的下载过程进行细分。<br />5、Page Download Time Breakdown(Over Time)（页面下载时间细分(随时间变化)）<br />“页面下载时间细分(随时间变化)”图显示方案运行期间，每一秒内每个页面组件下载时间的细分。使用此图可以确定网络或服务器在方案执行期间哪一时间点发生了问题。<br />“页面组件细分(随时间变化)”图和“页面下载时间细分(随时间变化)”图通常结合起来进行分析：首先确定有问题的组件，然后分析它们的下载过程，进而定位原因在哪里。<br />6、Time to First Buffer Breakdown（第一次缓冲时间细分）<br />“第一次缓冲时间细分”图显示成功收到从Web服务器返回的第一次缓冲之前的这一段时间内的每个页面组件的相关服务器/网路时间。如果组件的下载时间很长，则可以使用此图确定产生的问题与服务器有关还是与网络有关。<br />网络时间：定义为第一个HTTP请求那一刻开始，直到确认为止所经过的平均时间。<br />服务器时间：定义为从收到初始HTTP请求确认开始，直到成功收到来自Web服务器的一次缓冲为止所经过的平均时间。<br />7、Time to First Buffer Breakdown(Over Time)（第一次缓冲时间细分(随时间变化)）<br />“第一次缓冲时间细分(随时间变化)”图显示成功收到从Web服务器返回的第一个缓冲之前的这段时间内，场景运行的每一秒中每个网页组件的服务器时间和网络时间。可以使用此图确定场景运行期间服务器或网络出现问题的时间点。<br />8、Downloader Component Size(KB)（已下载组件大小）<br />“已下载组件大小”图显示每个已经下载的网页组建的大小。通过它可以直接看出哪些组件比较大并需要进一步进行优化以提高性能。</p>
<img src ="http://www.cnitblog.com/tjitty/aggbug/40837.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2008-03-12 11:50 <a href="http://www.cnitblog.com/tjitty/archive/2008/03/12/40837.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Loadrunner Analysis——Web Page Diagnostics</title><link>http://www.cnitblog.com/tjitty/archive/2008/03/12/40836.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Wed, 12 Mar 2008 03:33:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2008/03/12/40836.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/40836.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2008/03/12/40836.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/40836.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/40836.html</trackback:ping><description><![CDATA[
		<p>转载——作者：tacy lee</p>
		<p>简单介绍一下Loadrunner Analysis中的Web Page Diagnostics模块的使用，很多人对于测试之后的结果数据分析摸不着头脑，其实loadrunner Analysis给你提供了很好的文档，大家没事可以多翻翻，多翻几遍对于性能测试你就入门了 ；）</p>
		<p>Web Page Diagnostics （以下简称WPD），这是LR Analysis中非常重要的一块，搞清楚这部分的内容会让你少走很多弯路，很多环境问题都可以通过它来定位，比如客户端，网络。通过它可以你可以比较好的来定位是环境的问题还是应用本身的问题，当然更重要的是Web页面本身的问题。</p>
		<p>WPD包括下面几个图表：</p>
		<p>
				<strong>Web Page Diagnostics</strong>     这是张总图，包括下面几张Over Time图的内容</p>
		<p>
				<strong>Page Component Breakdown</strong>     页面中每个元素的平均响应时间占整个页面响应时间的百分比</p>
		<p>
				<strong>Page Component Breakdown(Over Time)</strong>     在整个测试过程中，任意一秒内页面中每个元素的响应时间（例如在runtime中设置了browser cache，页面中的资源文件就只会在第一次下载，后面的页面响应时间也就不包括这些元素的时间，这在Page Component Breakdown中是看不出来的，因为Page Component Breakdown是整个测试期间内的平均时间。当然，是否启用了cache，通过over time图就能看出来）</p>
		<p>
				<strong>Page Download Time Breakdown</strong>    页面中每个元素的响应时间分割图，响应时间被分割为以下几个部分：DNS Resolution,Connection,First Buffer,SSL Handshaking,Receive,FTP Authentication,Client,Error</p>
		<p>
				<strong>Page Download Time Breakdown(Over Time)</strong>      在整个测试过程中，任意一秒内页面中每个元素的响应时间分割图</p>
		<p>
				<strong>Time to First Buffer Breakdown      </strong>First Buffer Time时间分割为Network Time和Server Time，客户端http请求发送到接收到服务器端的应答包（ACK）为Network Time，从接收到ACK到完成First Buffer接受为Server Time</p>
		<p>
				<strong>Time to First Buffer Breakdown(Over Time)      </strong>基本同上，任意一秒内的</p>
		<p>
				<strong>Downloaded Component Size(KB)</strong>      页面中每个元素的大小（KB）</p>
		<p>介绍了这么多，具体如何分析呢？</p>
		<p>首先打开Web Page Diagnostics图，来看看下面一个例子Download Time图：</p>
		<p>
				<a href="http://www.blogjava.net/images/blogjava_net/tacy/WindowsLiveWriter/LoadrunnerAnalysisWebPageDiagnostics_10C05/Web-Page-Diagnostics-DownloadTime_2.png">
						<img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="265" alt="Web-Page-Diagnostics-DownloadTime" src="http://www.blogjava.net/images/blogjava_net/tacy/WindowsLiveWriter/LoadrunnerAnalysisWebPageDiagnostics_10C05/Web-Page-Diagnostics-DownloadTime_thumb.png" width="644" border="0" />
				</a>
		</p>
		<p>上图存在两个问题：</p>
		<p>1、receive时间很长</p>
		<p>这个一般是网络问题，当然如果你确认网络不存在问题，那么你就要看看是不是客户端的问题（客户端也可能会造成Receive过长，这个千万要注意）</p>
		<p>2、页面问题</p>
		<p>页面上包括了非常多的图片，而且图片似乎都没有优化，最大的竟然有163K，记下来，这可是罪证哦 ；）</p>
		<p>很多时候，你可以根据DNS,Connection,Receive来看出是否存在网络问题，根据Client来判断是否存在客户端问题。</p>
		<p>看看，挺简单的吧！ ^_^</p>
		<p>换个图看看，Page Component Breakdown(Over Time) </p>
		<p>
				<a href="http://www.blogjava.net/images/blogjava_net/tacy/WindowsLiveWriter/LoadrunnerAnalysisWebPageDiagnostics_10C05/Web-Page-Diagnostics-PCB_2.png">
						<img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="265" alt="Web-Page-Diagnostics-PCB" src="http://www.blogjava.net/images/blogjava_net/tacy/WindowsLiveWriter/LoadrunnerAnalysisWebPageDiagnostics_10C05/Web-Page-Diagnostics-PCB_thumb.png" width="644" border="0" />
				</a>
		</p>
		<p>很清楚吧，页面元素都被cache了，说明场景启用了browser cache，页面的响应时间只包括红线和蓝线。</p>
		<p>Time to First Buffer Breakdown(Over Time)  ，图就不贴了，这个图非常重要，也最复杂，这里的值不绝对，当网络状况不好的时候，server time很可能包括网络时间，因为很多页面元素比较小（小于4k的样子），在First Buffer就完成传输，所以一定要注意分析。</p>
		<p>就唠叨到这里吧，欢迎拍砖</p>
<img src ="http://www.cnitblog.com/tjitty/aggbug/40836.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2008-03-12 11:33 <a href="http://www.cnitblog.com/tjitty/archive/2008/03/12/40836.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LR动态链接数据库</title><link>http://www.cnitblog.com/tjitty/archive/2007/03/26/24691.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Mon, 26 Mar 2007 09:14:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2007/03/26/24691.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/24691.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2007/03/26/24691.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/24691.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/24691.html</trackback:ping><description><![CDATA[
		<p>LR本身并不提供动态的到数据库中取获取数据，一个极其简单的一个动态链接库，这只是个范例，希望大家以后会不断地完善它，而且此动态链接库只提供去一条记录！呵呵！以后有兴趣的话我会完善一下它！此动态链接库在SQL Server测试成功！ <br />下面是dll提供的API介绍！ <br />int init_db(char* connectString); <br />input: <br />connectString--为SQL链接串 <br />output:0---代表成功，非0--代表失败 <br />int execSQL(char* sql); <br />input:sql--你需要执行的sql语句 <br />output：0---代表成功，非0--代表失败 <br />int bindCol(int col,char* colname,char col_type,int length) <br />input： <br />col--表示SQL中的列号 <br />colname--表示你需要获取SQL的值 <br />col_tyoe:有两种c--代表字符型i---代表int <br />length---代表着你去的值长度是多少 <br />int fetchData(); <br />获取值 <br />void disConnect(); <br />断掉数据库链接以及释放内存 </p>
		<p>LR调用： <br />你把dll拷贝到LRscripts中就成了！或者按照如下方式加载： <br />全局的动态链接库的调用则需要修改mdrv.dat，路径在LoadRunner的安装目录下面（LoadRunner/dat directory）；在里面修改如例： <br />[WinSock] <br />ExtPriorityType="protocol" <br />WINNT_EXT_LIBS="wsrun32.dll" <br />WIN95_EXT_LIBS="wsrun32.dll" <br />LINUX_EXT_LIBS="liblrs.so" <br />SOLARIS_EXT_LIBS="liblrs.so" <br />HPUX_EXT_LIBS="liblrs.sl" <br />AIX_EXT_LIBS="liblrs.so" <br />LibCfgFunc="winsock_exten_conf" <br />UtilityExt="lrun_api" <br />ExtMessageQueue="0" <br />ExtCmdLineOverwrite="-WinInet" No <br />ExtCmdLineConc="-UsingWinInet" No <br />WINNT_DLLS="user_dll1.dll," user_dll2.dll, ... <br />//最后一行是加载你需要的DLL </p>
		<p> </p>
		<p>LR脚本示例： <br />char msgid[80],sp[20]; <br />lr_load_dll("GetData.dll"); <br />i=init_db("DRIVER={SQL Server};SERVER=*****;UID=******;PWD=*****;DATABASE=******"); <br />lr_output_message("i=%d",i); <br />i+=execSQL("select top 1 org_msgid,sp_number from msg"); <br />lr_output_message("i=%d",i); <br />i+=bindCol(1,msgid,"c",77); <br />i+=bindCol(2,sp,"c",6); <br />lr_output_message("i=%d",i); <br />i+=fetchData(); <br />lr_output_message("i=%d",i); <br />lr_output_message("i=%s",msgid); <br />lr_output_message("i=%s",sp); <br />disConnect(); </p>
		<p>
				<br />在判断结束100为记录的结束的标识符，在调用DLL之初、结束以及出错时自动将日志输出到当前目录的dll.log中去！ <br />程序参考： <br />int i=0; <br />int j; <br />char msgid[80],sp[20]; <br />lr_load_dll("GetData.dll"); <br />i=init_db("DRIVER={SQL Server};SERVER=*****;UID=**;PWD=***;DATABASE=*****"); <br />lr_output_message("i=%d",i); <br />i+=execSQL("select top 10 org_msgid,sp_number from msg"); <br />lr_output_message("i=%d",i); <br />i+=bindCol(1,msgid,"c",77); <br />i+=bindCol(2,sp,"c",6); <br />lr_output_message("i=%d",i); <br />while (i!=100) <br />{ <br />i=fetchData(); <br />lr_output_message("i=%d",i); <br />lr_output_message("i=%s",msgid); <br />lr_output_message("i=%s",sp); <br />} <br />disConnect(); </p>
		<p>新增加init_hstmt（）以及disConnect_hstmt（）两个API <br />init_hstmt()函数将传出一个long类型的hstmt变量,调用方式： </p>
		<p>long hstmt; <br />init_hstmt(&amp;hstmt); </p>
		<p>disConnect_hstmt(hstmt); </p>
		<p>--------------------------------------------------------------------------------</p>
		<p>GetData.dll <br /> 描述: 获取数据库中的值 <br /> <br /> 文件大小:  208.05 KB </p>
<img src ="http://www.cnitblog.com/tjitty/aggbug/24691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2007-03-26 17:14 <a href="http://www.cnitblog.com/tjitty/archive/2007/03/26/24691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LoadRunner中服务器资源监控器疑难解答</title><link>http://www.cnitblog.com/tjitty/archive/2007/03/26/24690.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Mon, 26 Mar 2007 09:05:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2007/03/26/24690.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/24690.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2007/03/26/24690.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/24690.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/24690.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 12pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-outline-level: 1" align="left">
				<span lang="EN-US" style="LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">LoadRunner</span>
				<span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">中服务器资源监控器疑难解答</span>
				<span style="LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<span lang="EN-US">
								<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
								<o:p>
								</o:p>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 10.5pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
				<span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">要监控服务器计算机上的资源，必须能够连接到该计算机。如果监控失败，并且</span>
				<span lang="EN-US" style="LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">LoadRunner </span>
				<span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">找不到指定的服务器，请确认指定的服务器是否可用。在</span>
				<span lang="EN-US" style="LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Controller </span>
				<span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">或优化控制台计算机命令行中键入</span>
				<span lang="EN-US" style="LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">ping &lt;server_name&gt;</span>
				<span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">，执行</span>
				<span lang="EN-US" style="LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">“ping”</span>
				<span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">操作。</span>
				<span lang="EN-US" style="LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
				<span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">验证可以访问该计算机后，请查看下表中有关监控器疑难解答的其他提示。<br /><br /><table class="MsoNormalTable" style="mso-cellspacing: 0cm; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt; mso-table-layout-alt: fixed" cellspacing="0" cellpadding="0" border="1"><tbody><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; BACKGROUND: #cccccc; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 10.5pt; TEXT-ALIGN: center; mso-pagination: widow-orphan" align="center"><b><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">问题</span></b><b><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></b></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; BACKGROUND: #cccccc; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 10.5pt; TEXT-ALIGN: center; mso-pagination: widow-orphan" align="center"><b><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">解决方案</span></b><b><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></b></p></td></tr><tr style="mso-yfti-irow: 1"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">无法监控其他域中的</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Windows </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机，或者</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">“</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">访问被拒绝</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">要获得对远程计算机的管理权限，请在命令提示符下执行以下命令：</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">%net use \\&lt;</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机名</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&gt;/</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">用户</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">:[&lt;</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">域</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&gt;\&lt;</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">远程计算机名</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&gt;] <o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">提示输入密码时，输入远程计算机的密码。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td></tr><tr style="mso-yfti-irow: 2"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">无法监控</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> NT/Win 2000 </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机（发出一条错误消息：</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">“</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">未找到计算机名</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">或</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">“</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">无法连接到主机</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">）</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">要监控的</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> NT/Win 2000 </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机仅允许具有管理员权限的用户进行监控。要允许非管理员用户进行监控，必须授予用户对特定文件和注册表项的读取权限（</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Microsoft </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">技术说明编号</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Q158438</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">）。需要执行下列步骤：</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><b><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">a. </span></b><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">使用浏览器或文件管理器，授予用户对下列项的读取权限：</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><br />       %windir%\system32\PERFCxxx.DAT <o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">       %windir%\system32\PERFHxxx.DAT <o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">    </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">其中</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> xxx </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">是系统的基本语言</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> ID</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">，</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><br />    </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">例如，英语的</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> ID </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">为</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> 009</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。这些文件可能</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><br />    </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">已丢失或损坏。如果对此有怀疑，请从</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><br />    </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">安装</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> CD </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">中提取这些文件。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><b><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">b. </span></b><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">使用</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> REGEDT32</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">，授予用户对下列项的读取权限：</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><br />   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib<br />    </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">以及该项的所有子项。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><b><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">c. </span></b><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">使用</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> REGEDT32</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">，至少授予用户对下列项的读取权限：</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><br />    HKEY_LOCAL_MACHINE\System\CurrentControlSet\    Control\SecurePipeServers\winreg <o:p></o:p></span></p></td></tr><tr style="mso-yfti-irow: 3"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">无法从</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> NT </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机监控某些</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Win 2000 </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计数器。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">在</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Win 2000 </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机上运行</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Controller </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">或优化控制台。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td></tr><tr style="mso-yfti-irow: 4"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">某些</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Windows </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">默认计数器生成错误</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">删除有问题的计数器，并使用</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">“</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">添加度量</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">对话框添加相应计数器。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td></tr><tr style="mso-yfti-irow: 5"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">无法从被监控的计算机上获得</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> SQL Server 6.5 </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">版的性能计数器。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">这是</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> SQL Server 6.5 </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">版的一个错误。解决方法为：在被监控的计算机上使用</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> regedt32</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">，授予用户对以下注册表项的读取权限：</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer <o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">（</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Microsoft </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">技术说明编号</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Q170394</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">）</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td></tr><tr style="mso-yfti-irow: 6"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">选定度量未显示在图中。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">确保已注册显示文件和</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> online.exe</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。要在不执行完全安装的情况下注册监控器的</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> dll</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">，请运行</span><span style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><b><span lang="EN-US">LoadRunner\bin</span></b><span lang="EN-US"></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">中的</span><span style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><b><span lang="EN-US">set_mon.bat</span></b><span lang="EN-US"></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">批处理文件。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td></tr><tr style="mso-yfti-irow: 7"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">监控</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Windows </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机时，图中不显示任何度量。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">检查内置的</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Windows </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">性能监控器。如果该监控器不能正常工作，则可能是通信设置有问题。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td></tr><tr style="mso-yfti-irow: 8"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">监控</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> UNIX </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机时，图中不显示任何度量。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">确保</span><span style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><b><span lang="EN-US">rstatd</span></b><span lang="EN-US"></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">正在</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> UNIX </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机上运行（请参阅</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">“</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">系统资源监控</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">）。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td></tr><tr style="mso-yfti-irow: 9"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">无法监控下列</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Web </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">服务器之一：</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">MS IIS</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">、</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">MS ASP </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">或</span><span style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><span lang="EN-US">ColdFusion <o:p></o:p></span></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">请参阅上面的问题</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">“</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">无法监控</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> Windows </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">计算机</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td></tr><tr style="mso-yfti-irow: 10; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 130.5pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="174"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">无法监控</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> WebLogic (JMX) </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">服务器</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td><td style="BORDER-RIGHT: #ffffff; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ffffff; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ffffff; WIDTH: 293.8pt; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: transparent" valign="top" width="392"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">打开</span><span style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><b><span lang="EN-US">&lt;LoadRunner </span></b></span><b><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">根文件夹</span></b><b><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&gt;\dat\monitors\WebLogicMon.ini</span></b><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">文件，并搜索：</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><br />[WebLogicMonitor]<br />JVM=javaw.exe<br /></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">将</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> javaw.exe </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">更改为</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> java.exe</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。将打开一个包含跟踪信息的窗口。</span><span lang="EN-US" style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p></td></tr></tbody></table></span>
		</p>
<img src ="http://www.cnitblog.com/tjitty/aggbug/24690.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2007-03-26 17:05 <a href="http://www.cnitblog.com/tjitty/archive/2007/03/26/24690.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>lr监视的性能计数器</title><link>http://www.cnitblog.com/tjitty/archive/2007/01/24/22258.html</link><dc:creator>tjitty</dc:creator><author>tjitty</author><pubDate>Wed, 24 Jan 2007 03:20:00 GMT</pubDate><guid>http://www.cnitblog.com/tjitty/archive/2007/01/24/22258.html</guid><wfw:comment>http://www.cnitblog.com/tjitty/comments/22258.html</wfw:comment><comments>http://www.cnitblog.com/tjitty/archive/2007/01/24/22258.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/tjitty/comments/commentRss/22258.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tjitty/services/trackbacks/22258.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">大家好，今后，我们将以专题的方式展开对LR监视的性能计数器及LR的场景设计设计的讨论，欢迎大家涌跃发言。<br /><br />今天，我先把我整理的一些计数器及其阈值要求等贴出来，这些计数器是针对我对windows操作系统，C/S结构的sql server数据库及WEB平台.net产品测试时的一些计数器；大家可以继续补充，作过unix平台上oracle数据库测试及J2EE架构及WEBLOGIC方面测试的朋友，也希望把自己使用的计数器贴出来，让大家分享。<br /><br />好了，先说这些了，希望通过这个专题，最终能让大家对自己的测试结果进行分析。<br /><br />Memory: 内存使用情况可能是系统性能中最重要的因素。如果系统“页交换”频繁，说明内存不足。“页交换”是使用称为“页面”的单位，将固定大小的代码和数据块从 RAM 移动到磁盘的过程，其目的是为了释放内存空间。尽管某些页交换使 Windows 2000 能够使用比实际更多的内存，也是可以接受的，但频繁的页交换将降低系统性能。减少页交换将显著提高系统响应速度。要监视内存不足的状况，请从以下的对象计数器开始：<br /><br />Available Mbytes:可用物理内存数. 如果Available Mbytes的值很小（4 MB 或更小），则说明计算机上总的内存可能不足，或某程序没有释放内存。<br /><br />page/sec: 表明由于硬件页面错误而从磁盘取出的页面数，或由于页面错误而写入磁盘以释放工作集空间的页面数。一般如果pages/sec持续高于几百，那么您应该进一步研究页交换活动。有可能需要增加内存，以减少换页的需求（你可以把这个数字乘以4k就得到由此引起的硬盘数据流量）。Pages/sec 的值很大不一定表明内存有问题，而可能是运行使用内存映射文件的程序所致。<br /><br />page read/sec:页的硬故障，page/sec的子集，为了解析对内存的引用，必须读取页文件的次数。阈值为&gt;5. 越低越好。大数值表示磁盘读而不是缓存读。由于过多的页交换要使用大量的硬盘空间，因此有可能将导致将页交换内存不足与导致页交换的磁盘瓶径混淆。因此，在研究内存不足不太明显的页交换的原因时，您必须跟踪如下的磁盘使用情况计数器和内存计数器：<br /><br />Physical Disk\ % Disk Time <br />Physical Disk\ Avg.Disk Queue Length <br />例如，包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果页面读取操作速率很低，同时 % Disk Time 和 Avg.Disk Queue Length的值很高，则可能有磁盘瓶径。但是，如果队列长度增加的同时页面读取速率并未降低，则内存不足。<br />要确定过多的页交换对磁盘活动的影响，请将 Physical Disk\ Avg.Disk sec/Transfer 和 Memory\ Pages/sec 计数器的值增大数倍。如果这些计数器的计数结果超过了 0.1，那么页交换将花费百分之十以上的磁盘访问时间。如果长时间发生这种情况，那么您可能需要更多的内存。<br /><br />Page Faults/sec:每秒软性页面失效的数目（包括有些可以直接在内存中满足而有些需要从硬盘读取）较page/sec只表明数据不能在内存的指定工作集中立即使用。<br /><br />Cache Bytes：文件系统缓存（File System Cache），默认情况下为50%的可用物理内存。如IIS5.0 运行内存不够时，它会自动整理缓存。需要关注该计数器的趋势变化<br />如果您怀疑有内存泄露，请监视 Memory\ Available Bytes 和 Memory\ Committed Bytes，以观察内存行为，并监视您认为可能在泄露内存的进程的 Process\Private Bytes、Process\Working Set 和Process\Handle Count。如果您怀疑是内核模式进程导致了泄露，则还应该监视 Memory\Pool Nonpaged Bytes、Memory\ Pool Nonpaged Allocs 和 Process(process_name)\ Pool Nonpaged Bytes。<br /><br />Pages per second :每秒钟检索的页数。该数字应少于每秒一页。<br /><br /><font style="background-color: rgb(255, 0, 0);">Process</font>：<br />%Processor Time: 被处理器消耗的处理器时间数量。如果服务器专用于sql server,可接受的最大上限是80-85%<br /><br />Page Faults/sec:将进程产生的页故障与系统产生的相比较，以判断这个进程对系统页故障产生的影响。<br /><br />Work set: 处理线程最近使用的内存页，反映了每一个进程使用的内存页的数量。如果服务器有足够的空闲内存，页就会被留在工作集中，当自由内存少于一个特定的阈值时，页就会被清除出工作集。<br /><br />Inetinfo:Private Bytes:此进程所分配的无法与其它进程共享的当前字节数量。如果系统性能随着时间而降低，则此计数器可以是内存泄漏的最佳指示器。<br /><br />Processor：监视“处理器”和“系统”对象计数器可以提供关于处理器使用的有价值的信息，帮助您决定是否存在瓶颈。 <br /><br />%Processor Time:如果该值持续超过95%，表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。<br /><br />%User Time:表示耗费CPU的数据库操作，如排序，执行aggregate functions等。如果该值很高，可考虑增加索引，尽量使用简单的表联接，水平分割大表格等方法来降低该值。<br /><br />%Privileged Time：（CPU内核时间）是在特权模式下处理线程执行代码所花时间的百分比。如果该参数值和"Physical Disk"参数值一直很高，表明I/O有问题。可考虑更换更快的硬盘系统。另外设置Tempdb in RAM，减低"max async IO"，"max lazy writer IO"等措施都会降低该值。<br />此外，跟踪计算机的服务器工作队列当前长度的 Server Work Queues\ Queue Length 计数器会显示出处理器瓶颈。队列长度持续大于 4 则表示可能出现处理器拥塞。此计数器是特定时间的值，而不是一段时间的平均值。<br /><br />% DPC Time:越低越好。在多处理器系统中，如果这个值大于50%并且Processor:% Processor Time非常高，加入一个网卡可能会提高性能，提供的网络已经不饱和。<br /><br /><font style="background-color: rgb(255, 0, 0);">Thread</font><br />ContextSwitches/sec: (实例化inetinfo 和dllhost 进程) 如果你决定要增加线程字节池的大小，你应该监视这三个计数器（包括上面的一个）。增加线程数可能会增加上下文切换次数，这样性能不会上升反而会下降。如果十个实例的上下文切换值非常高，就应该减小线程字节池的大小。<br /><br /><font style="background-color: rgb(255, 0, 0);">Physical Disk</font>:<br />%Disk Time %:指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果三个计数器都比较大，那么硬盘不是瓶颈。如果只有%Disk Time比较大，另外两个都比较适中，硬盘可能会是瓶颈。在记录该计数器之前，请在Windows 2000 的命令行窗口中运行diskperf -yD。若数值持续超过80%，则可能是内存泄漏。<br />Avg.Disk Queue Length:指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。该值应不超过磁盘数的1.5~2 倍。要提高性能，可增加磁盘。注意：一个Raid Disk实际有多个磁盘。<br />Average Disk Read/Write Queue Length:指读取(写入)请求(列队)的平均数。<br />Disk Reads(Writes)/s: 物理磁盘上每秒钟磁盘读、写的次数。两者相加，应小于磁盘设备最大容量。<br />Average Disksec/Read: 指以秒计算的在此盘上读取数据的所需平均时间。<br />Average Disk sec/Transfer:指以秒计算的在此盘上写入数据的所需平均时间。<br />Network Interface：<br />Bytes Total/sec :为发送和接收字节的速率，包括帧字符在内。判断网络连接速度是否是瓶颈，可以用该计数器的值和目前网络的带宽比较。<br /><br /><font style="background-color: rgb(255, 0, 0);">SQLServer性能计数器</font>：<br />Access Methods(访问方法) 用于监视访问数据库中的逻辑页的方法。<br />. Full Scans/sec(全表扫描/秒) 每秒不受限的完全扫描数。可以是基本表扫描或全索引扫描。如果这个计数器显示的值比1或2高，应该分析你的查询以确定是否确实需要全表扫描，以及S Q L查询是否可以被优化。<br />. Page splits/sec(页分割/秒)由于数据更新操作引起的每秒页分割的数量。<br />Buffer Manager(缓冲器管理器)：监视 Microsoft® SQL Server™ 如何使用： 内存存储数据页、内部数据结构和过程高速缓存；计数器在 SQL Server 从磁盘读取数据库页和将数据库页写入磁盘时监视物理 I/O。 监视 SQL Server 所使用的内存和计数器有助于确定： 是否由于缺少可用物理内存存储高速缓存中经常访问的数据而导致瓶颈存在。如果是这样，SQL Server 必须从磁盘检索数据。 是否可通过添加更多内存或使更多内存可用于数据高速缓存或 SQL Server 内部结构来提高查询性能。<br />SQL Server 需要从磁盘读取数据的频率。与其它操作相比，例如内存访问，物理 I/O 会耗费大量时间。尽可能减少物理 I/O 可以提高查询性能。 <br />.Page Reads/sec：每秒发出的物理数据库页读取数。这一统计信息显示的是在所有数据库间的物理页读取总数。由于物理 I/O 的开销大，可以通过使用更大的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法，使开销减到最小。<br />.Page Writes/sec (.写的页/秒) 每秒执行的物理数据库写的页数。<br />.Buffer Cache Hit Ratio. 在“缓冲池”（Buffer Cache/Buffer Pool）中没有被读过的页占整个缓冲池中所有页的比率。可在高速缓存中找到而不需要从磁盘中读取的页的百分比。这一比率是高速缓存命中总数除以自 SQL Server 实例启动后对高速缓存的查找总数。经过很长时间后，这一比率的变化很小。由于从高速缓存中读数据比从磁盘中读数据的开销要小得多，一般希望这一数值高一些。通常，可以通过增加 SQL Server 可用的内存数量来提高高速缓存命中率。计数器值依应用程序而定，但比率最好为90% 或更高。增加内存直到这一数值持续高于90%，表示90% 以上的数据请求可以从数据缓冲区中获得所需数据。<br />. Lazy Writes/sec(惰性写/秒)惰性写进程每秒写的缓冲区的数量。值最好为0。<br />Cache Manager(高速缓存管理器) 对象提供计数器，用于监视 Microsoft® SQL Server™ 如何使用内存存储对象，如存储过程、特殊和准备好的 Transact-SQL 语句以及触发器。<br />. Cache Hit Ratio(高速缓存命中率，所有Cache”的命中率。在SQL Server中，Cache可以包括Log Cache，Buffer Cache以及Procedure Cache，是一个总体的比率。) 高速缓存命中次数和查找次数的比率。对于查看SQL Server高速缓存对于你的系统如何有效，这是一个非常好的计数器。如果这个值很低，持续低于80%，就需要增加更多的内存。<br />Latches(闩) 用于监视称为闩锁的内部 SQL Server 资源锁。监视闩锁以明确用户活动和资源使用情况，有助于查明性能瓶颈。<br />. Average Latch Wait Ti m e ( m s ) (平均闩等待时间(毫秒)) 一个SQL Server线程必须等待一个闩的平均时间，以毫秒为单位。如果这个值很高，你可能正经历严重的竞争问题。<br />. Latch Waits/sec (闩等待/秒) 在闩上每秒的等待数量。如果这个值很高，表明你正经历对资源的大量竞争。<br />Locks(锁) 提供有关个别资源类型上的 SQL Server 锁的信息。锁加在 SQL Server 资源上（如在一个事务中进行的行读取或修改），以防止多个事务并发使用资源。例如，如果一个排它 (X) 锁被一个事务加在某一表的某一行上，在这个锁被释放前，其它事务都不可以修改这一行。尽可能少使用锁可提高并发性，从而改善性能。可以同时监视 Locks 对象的多个实例，每个实例代表一个资源类型上的一个锁。<br />. Number of Deadlocks/sec(死锁的数量/秒) 导致死锁的锁请求的数量<br />. Average Wait Time(ms) (平均等待时间(毫秒)) 线程等待某种类型的锁的平均等待时间<br />. Lock Requests/sec(锁请求/秒) 每秒钟某种类型的锁请求的数量。<br />Memory manager:用于监视总体的服务器内存使用情况，以估计用户活动和资源使用，有助于查明性能瓶颈。监视 SQL Server 实例所使用的内存有助于确定： <br />是否由于缺少可用物理内存存储高速缓存中经常访问的数据而导致瓶颈存在。如果是这样，SQL Server 必须从磁盘检索数据。 <br />是否可以通过添加更多内存或使更多内存可用于数据高速缓存或 SQL Server 内部结构来提高查询性能。<br />Lock blocks:服务器上锁定块的数量，锁是在页、行或者表这样的资源上。不希望看到一个增长的值。<br />Total server memory：sql server服务器当前正在使用的动态内存总量.<br /><br /><font style="background-color: rgb(255, 0, 0);">监视IIS需要的一些计数器</font><br />Internet Information Services Global:<br />File Cache Hits %、File CacheFlushes、File Cache Hits<br />File Cache Hits %是全部缓存请求中缓存命中次数所占的比例，反映了IIS 的文件缓存设置的工作情况。对于一个大部分是静态网页组成的网站，该值应该保持在80%左右。而File Cache Hits是文件缓存命中的具体值，File CacheFlushes 是自服务器启动之后文件缓存刷新次数，如果刷新太慢，会浪费内存；如果刷新太快，缓存中的对象会太频繁的丢弃生成，起不到缓存的作用。通过比较File Cache Hits 和File Cache Flushes 可得出缓存命中率对缓存清空率的比率。通过观察它两个的值，可以得到一个适当的刷新值（参考IIS 的设置ObjectTTL 、MemCacheSize 、MaxCacheFileSize）<br />Web Service:<br />Bytes Total/sec:显示Web服务器发送和接受的总字节数。低数值表明该IIS正在以较低的速度进行数据传输。<br />Connection Refused：数值越低越好。高数值表明网络适配器或处理器存在瓶颈。<br />Not Found Errors：显示由于被请求文件无法找到而无法由服务器满足的请求数（HTTP状态代码404）<br /><br /><font style="background-color: rgb(255, 0, 0);">重贴</font><br />监视内存计数器<br />要监视内存不足的状况，请从以下的对象计数器开始：<br />内存信息：<br />Memory\ Available Bytes <br />Memory\ Pages/sec <br />Memory\ Available Bytes <br />如果您怀疑有内存泄露，请监视 Memory\Available Bytes 和 Memory\ Committed Bytes，以观察内存行为，并监视您认为可能在泄露内存的进程的 Process\ Private Bytes、Process\ Working Set 和Process\ Handle Count。如果您怀疑是内核模式进程导致了泄露，<br />则还应该监视 Memory\ Pool Nonpaged Bytes、Memory\ Pool Nonpaged Allocs 和 Process(process_name)\ Pool Nonpaged Bytes。</font>
		</p>
		<p>
				<font size="2">CPU信息：<br />Processor\ % Processor Time 获得处理器使用情况。 <br />也可以选择监视 Processor\ % User Time 和 % Privileged Time 以获得详细信息。<br />Server Work Queues\ Queue Length 计数器会显示出处理器瓶颈。队列长度持续大于 4 则表示可能出现处理器拥塞。<br />System\ Processor Queue Length 用于瓶颈检测<br />通过使用 Process\ % Processor Time 和 Process\ Working Set <br />Process\ % Processor Time过程的所有线程在每个处理器上的处理器时间总和。</font>
		</p>
		<p>
				<font size="2">硬盘信息：<br />Physical Disk\ % Disk Time <br />Physical Disk\ Avg.Disk Queue Length <br />例如，包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果页面读取操作速率很低，同时 % Disk Time 和 Avg.Disk Queue Length的值很高，则可能有磁盘瓶径。但是，如果队列长度增加的同时页面读取速率并未降低，则内存不足。<br />Physical Disk\ % Disk Time <br />Physical Disk\ Avg.Disk Queue Length <br />例如，包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果页面读取操作速率很低，同时 % Disk Time 和 Avg.Disk Queue Length的值很高，则可能有磁盘瓶径。但是，如果队列长度增加的同时页面读取速率并未降低，则内存不足。<br />请观察 Processor\ Interrupts/sec 计数器的值，该计数器测量来自输入/输出 (I/O) 设备的服务请求的速度。如果此计数器的值明显增加，而系统活动没有相应增加，则表明存在硬件问题。<br />Physical Disk\ Disk Reads/sec and Disk Writes/sec <br />Physical Disk\ Current Disk Queue Length <br />Physical Disk\ % Disk Time <br />LogicalDisk\ % Free Space <br />测试磁盘性能时，将性能数据记录到另一个磁盘或计算机，以便这些数据不会干扰您正在测试的磁盘。<br />可能需要观察的附加计数器包括 Physical Disk\ Avg.Disk sec/Transfer、Avg.Disk Bytes/Transfer，和 Disk Bytes/sec。 <br />Avg.Disk sec/Transfer 计数器反映磁盘完成请求所用的时间。较高的值表明磁盘控制器由于失败而不断重试该磁盘。这些故障会增加平均磁盘传送时间。对于大多数磁盘，较高的磁盘平均传送时间是大于 0.3 秒。 <br />也可以查看 Avg.Disk Bytes/Transfer 的值。值大于 20 KB 表示该磁盘驱动器通常运行良好；如果应用程序正在访问磁盘，则会产生较低的值。例如，随机访问磁盘的应用程序会增加平均 Disk sec/Transfer 时间，因为随机传送需要增加搜索时间。 <br />Disk Bytes/sec 提供磁盘系统的吞吐率。<br />决定工作负载的平衡<br />要平衡网络服务器上的负载，需要了解服务器磁盘驱动器的繁忙程度。使用 Physical Disk\ % Disk Time 计数器，该计数器显示驱动器活动时间的百分比。如果 % Disk Time 较高（超过 90%），请检查 Physical Disk\ Current Disk Queue Length 计数器以查看正在等待磁盘访问的系统请求数量。等待 I/O 请求的数量应当保持在不大于组成物理磁盘的主轴数的 1.5 到 2 倍。</font>
		</p>
		<p>
				<font size="2">尽管廉价磁盘冗余阵列 (RAID) 设备通常有多个主轴，大多数磁盘有一个主轴。硬件 RAID 设备在“系统监视器”中显示为一个物理磁盘；通过软件创建的 RAID 设备显示为多个驱动器（实例）。可以监视每个物理驱动器（而不是 RAID）的 Physical Disk 计数器，也可以使用 _Total 实例来监视所有计算机驱动器的数据。</font>
		</p>
		<p>
				<font size="2">使用 Current Disk Queue Length 和 % Disk Time 计数器来检测磁盘子系统的瓶颈。如果 Current Disk Queue Length 和 % Disk Time 的值始终较高，可以考虑升级磁盘驱动器或将某些文件移动到其他磁盘或服务器。<br /><br />From: http://bbs.51testing.com/thread-2196-1-1.html</font>
		</p>
<img src ="http://www.cnitblog.com/tjitty/aggbug/22258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tjitty/" target="_blank">tjitty</a> 2007-01-24 11:20 <a href="http://www.cnitblog.com/tjitty/archive/2007/01/24/22258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>