﻿<?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>BlogJava-Titan专栏-文章分类-性能测试</title><link>http://www.blogjava.net/Titan/category/6578.html</link><description>用文字来整理生命</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 06:32:34 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 06:32:34 GMT</pubDate><ttl>60</ttl><item><title>内存的运行原理和技术＋内存问题解决方案 </title><link>http://www.blogjava.net/Titan/articles/36383.html</link><dc:creator>Titan</dc:creator><author>Titan</author><pubDate>Mon, 20 Mar 2006 09:09:00 GMT</pubDate><guid>http://www.blogjava.net/Titan/articles/36383.html</guid><wfw:comment>http://www.blogjava.net/Titan/comments/36383.html</wfw:comment><comments>http://www.blogjava.net/Titan/articles/36383.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Titan/comments/commentRss/36383.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Titan/services/trackbacks/36383.html</trackback:ping><description><![CDATA[序论 <br />什么是内存 <br />今天,不管你的计算机有多少内存,内存总像是不太够用。不久前,个人计算机能够拥有超过1或2MB的内存还是闻所未闻的，而今天,大多数的系统需要64MB以执行基本的应用程式，且需要至少256MB或更多内存才能流畅地执行图像动画及多媒体应用等其他效能。 <br />想要理解过去二十年内存科技的转变,可以参考1981年比尔.盖兹在提到计算机内存时所说的: “640K(大约1/2MB)就应该足以应付任何人的需求了”。 <br />一部分人对内存的认知非常简单:多的是好的,少的是坏的。但是,对其他想深入了解的人,这本指南手册提供了一般问题的解答,以及更多更多的介绍。 <br />内存在计算机中所扮演的角色 <br />在计算机业界,内存这个名词被广泛用来称呼RAM(随机存取内存) 计算机使用随机存取内存来储存执行作业所须的暂时指令以及资料 以使计算机的CPU(中央处理器)能够更快速读取储存在内存的指令及资料 <br />举例来说,当处理器载入一个应用程式-例如文字处理或页面编辑程式-到内存使应用程式能以最快速及最高效率的方式执行以。以实用价值而言,将程式载入内存能够确保计算机能以更短的时间来执行作业而使工作能够更迅速地完成 <br /><br />当你以键盘输入指令开始，中央处理器诠释指令并命令硬碟将指令或程式载入到内存中，当资料被载入内存之后,中央处理器便能比自硬碟中存取而更快速地取得资料 <br />将中央处理器所需要的物件集中到一个地方，以使存取更为快速的动作与将不同的电子档案及文件放置在同一个资料夹或目录中非常类似。这个动作能够确保所需的档案易於使用,并且避免每次需要时都必须在不同位置寻找他们。 <br />内存与储存(Storage)的差别 <br />大多数人常将内存(Memory)与储存空间(Storage)两个名字混为一谈,尤其是在谈到两者的容量的时候 内存是指(Memory)计算机中所安装的随机存取内存的容量而储存(Storage)是指计算机内硬碟的容量 为了避免混淆,我们将计算机比喻为一个有办公桌与档案柜的办公室。 <br /><br /><br />档案柜代表计算机中提供储存所有所需档案及资料的硬碟，工作时将需要的档案从档案柜中取出并放到办公桌上以方便取得，办公桌就像保持资料及数据取用方便的内存。 <br />想像一下这个办公桌与档案柜的比喻。想像每次想要阅读一份文件或资料夹都必须从档案柜中找寻的情形，这会大幅减低工作执行的速度,更别说会把人逼疯了。如果有足够的办公桌空间(如内存),便能够将所需要的文件摊开,并能立即一眼就能找出所需的资讯。 <br />另一个内存与储存最重要的差别在於:储存於硬碟中的资讯在关机后能够保持完整，但任何储存在内存中的资料在计算机关机后便会全部流失。就像在办公室的比喻中,任何在下班时间后被遗留在桌上的文件或档案都会全部被丢弃一样。 <br />内存与效能表现(Memory and Performance) <br />增加计算机系统中的内存能够增加计算机的效能表现是众所皆知的。如果内存没有足够的空间,计算机就必须建立一个虚拟内存档案。在这个过程中,中央处理器在硬碟中保留一个空间来代替额外的随机存取内存 这个称为” Swapping”的程序减低系统的速度 一般的计算机从内存存取大约需要200ns(奈秒),但从硬碟存取则需要12,000,000ns 具体来说就等於花四个半月的时间来完成三分半中就能完成的工作! <br /><br />随机存取内存与硬碟的存取时间的比较 <br />*个人计算机的内存升级: 人生是美好的 假设你有曾经在您的计算机中增加内存的经验,就会发现效能立即增进许多。内存升级能够让应用程式回应更快速,网页下载的时间更快而且更多可以同时执行多种不同的应用程式。简单来说,内存升级能够增加使用计算机的乐趣 <br />*服务器上的内存升级: 人生更加美好 今天,越来越多人以工作的群体方式使用计算机并且透过网路来分享资料。儿帮助分配资源的计算机称为服务器(Server)。服务器本身的效能表现对Network的效能表现有重大的影响:如果服务器的表现拙劣,网路上的每个用户都能 “感同身受” 所以,就如同个人计算机上的内存升级能够对使用者有重大的影响,服务器上的内存升级能够对每个网路使用者产生更大的影响以及帮助。 <br />以下是以Windos NT为基础的独立研究报告帮助你了解服务器升级所带来帮助和益处 <br /><br />应用程式服务器被用来操作多种程式的应用,例如文字处理或表格之程式。 在将基本内存从68MB增加为128MB之后, Windows NT服务器便能以不变的速度支援五倍的用户。 <br /><br />内存由64MB增至128MB时间减少85% <br />内存由256MB增至512MB时间减少59% <br />网路服务器被用来上传网页以回应用户文件的传输要求，将内存加倍能够减少多於50%的回应时间。 <br /><br />速度增加947% <br />速度增加3000% <br />速度增加248% <br />处理绝大多数电子邮件以及讯息的目录服务器对於整个企业的生产效率来说是不可或缺的。更多的内存能够加快服务器从相连的资讯库中取得资讯的速度 将内存加倍能够使性能表现提高248%到3000%<img src ="http://www.blogjava.net/Titan/aggbug/36383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Titan/" target="_blank">Titan</a> 2006-03-20 17:09 <a href="http://www.blogjava.net/Titan/articles/36383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>压力和负载测试的认识 </title><link>http://www.blogjava.net/Titan/articles/26289.html</link><dc:creator>Titan</dc:creator><author>Titan</author><pubDate>Sun, 01 Jan 2006 14:34:00 GMT</pubDate><guid>http://www.blogjava.net/Titan/articles/26289.html</guid><wfw:comment>http://www.blogjava.net/Titan/comments/26289.html</wfw:comment><comments>http://www.blogjava.net/Titan/articles/26289.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Titan/comments/commentRss/26289.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Titan/services/trackbacks/26289.html</trackback:ping><description><![CDATA[做性能测试的时候通常会面对这样的疑问：“压力测试（STRESSTEST）和负载测试（LOADTEST）的区别是什么？”
<P><FONT color=#000000>&nbsp;&nbsp;&nbsp;&nbsp; 先让我们先了解什是压力测试，负载测试。压力测试是在一定的负荷条件下，长时间连续运行系统给系统性能造成的影响。负载测试：在一定的工作负荷下，给系统造成的负荷及系统响应的时间。从概念上区别他们，可以看出压力测试有个长时间运行，而负载测试负载类型可能是其他类型的。压力测试主要是为了发现在一（任意）定条件下软件系统的性能的变化情况。通过改变应用程序的输入以对应用程序施加越来越大的负载（并发，循环操作，多用户）并测量在这些不同的输入时性能的改变，也就是通常说的概念：压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。其实这种测试也可以称为负载测试，但是负载测试通常描述一种特定类型的压力测试——增加用户数量以对应用程序进行压力测试。</FONT></P>
<P><FONT color=#000000>&nbsp;&nbsp;&nbsp;&nbsp; 比如实际中我们说从比较小的负载开始，逐渐增加模拟用户的数量， 直到应用程序响应时间超时，就是说的负载测试。</FONT></P><img src ="http://www.blogjava.net/Titan/aggbug/26289.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Titan/" target="_blank">Titan</a> 2006-01-01 22:34 <a href="http://www.blogjava.net/Titan/articles/26289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>性能测试之协议分析 </title><link>http://www.blogjava.net/Titan/articles/26288.html</link><dc:creator>Titan</dc:creator><author>Titan</author><pubDate>Sun, 01 Jan 2006 14:33:00 GMT</pubDate><guid>http://www.blogjava.net/Titan/articles/26288.html</guid><wfw:comment>http://www.blogjava.net/Titan/comments/26288.html</wfw:comment><comments>http://www.blogjava.net/Titan/articles/26288.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Titan/comments/commentRss/26288.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Titan/services/trackbacks/26288.html</trackback:ping><description><![CDATA[<P>最近在论坛上的一些朋友问脚本方面的问题，比如用lr的winsock协议录制的脚本遇回放过程中遇到如下错误</P>
<P>Action.c(20): Error : callConnect - Can't assign requested address. Error code : 10049.<BR>Action.c(20): Error : Timeout expired while trying to connect. Error code : 9017.</P>
<P>这里的10049是udp协议错误，是脚本没有和服务器同步，这说明什么问题呢。下边我用一个协议进行分析，来看看到底是什么问题，<BR>smtp协议分析：</P>
<P>1.SMTP工作方式有两种情况：一是电子邮件从客户机传输到服务器；二是从某一个服务器传输到另一个服务器. <BR>2.SMTP是个请求/响应协议，命令和响应都是基于ASCII文本，并以CR和LF符结束。响应包括一个表示返回状态的三位数字代码. <BR>3.SMTP在TCP协议25号端口监听连接请求 <BR>4.连接和发送过程： </P>
<P>a.建立TCP连接 <BR>b.客户端发送HELO命令以标识发件人自己的身份，然后客户端发送MAIL命令 <BR>服务器端正希望以OK作为响应，表明准备接收 <BR>c.客户端发送RCPT命令，以标识该电子邮件的计划接收人，可以有多个RCPT行 <BR>服务器端则表示是否愿意为收件人接受邮件 <BR>d.协商结束，发送邮件，用命令DATA发送 <BR>e. 以.表示结束输入内容一起发送出去 <BR>f.结束此次发送，用QUIT命令退出。 <BR></P>
<P>5.另外两个命令： <BR>VRFY---用于验证给定的用户邮箱是否存在，以及接收关于该用户的详细信息。 <BR>EXPN---用于扩充邮件列表。 <BR></P>
<P>6.邮件路由过程： <BR>SMTP服务器基于‘域名服务DNS中计划收件人的域名来路由电子邮件。SMTP服务器基于DNS中的MX记录来路由电子邮件，MX记录注册了域名和相关的SMTP中继主机，属于该域的电子邮件都应向该主机发送。 <BR></P>
<P>若SMTP服务器mail.withub.org收到一封信要发到<A href="mailto:pcl@withub.org"><FONT color=#666666>pcl@withub.org</FONT></A> <BR></P>
<P>a.Sendmail请求DNS给出主机withub.org的CNAME记录，如有，假若CNAME到mail.withub.org，则再次请求mail.withub.org的CNAME记录，直到没有为止. <BR>b.假定被CNAME到mail.withub.org,然后sendmail请求@withub.org域的DNS给出mail.withub.org的MX记录， <BR>shmail MX 5 mail.withub.org<BR>10 shmail2.withub.org <BR>c. Sendmail最后请求DNS给出shmail.withub.org的A记录，即IP地址，若返回值为1.2.3.4 <BR>d. Sendmail与1.2.3.4连接，传送这封给pcl<A href="mailto:pcl@withub.org"><FONT color=#666666>@withub.org</FONT></A>的信到1.2.3.4这台服务器的SMTP后台程序</P>
<P>这里是协议的一个解析过程，我们要看看，利用lr录制脚本后然后回放，录制的过程中mail.withub.org返回客户端服务器上有多少给用户的邮件，lr把这个数字保存下来，最为下次回放的时候对比。当你第二次回放的时候，lr模拟客户端发送请求，这时候服务器上没有了新邮件，返回可能是0,lr把这个返回值和当时录制的脚本保存的返回值进行对比（那个时候可能服务器上有3个新的邮件，服务器返回的值是3），明显这个值是动态变化的。你的脚本如果没有经过修改，肯定是回返不成功的。</P>
<P>那么上边提到的错误信息，同样的道理，我们要分析一下到底是什么问题，从协议上分析，从系统环境上分析。</P>
<P>解决方法，动态关联</P>
<P>1.用同样的用户操作同样的步骤两次，然后用lr工具wdiff进行脚本对比，找出不同的地方！</P>
<P>2.用lr自动关联</P>
<P>3.手工关联，找到要替换的动态数据进行替换</P><img src ="http://www.blogjava.net/Titan/aggbug/26288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Titan/" target="_blank">Titan</a> 2006-01-01 22:33 <a href="http://www.blogjava.net/Titan/articles/26288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>