ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:34.25KB ,
资源ID:3769467      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3769467.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(性能测试专题详细分析.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

性能测试专题详细分析.docx

1、性能测试专题详细分析性能测试专题分析撰写人:王井滨部门:*性能测试组日期:2011/9/13软件版本号:1.0保密级:保密修订记录日期文档版本号修订说明作者2011/9/13V1.0创建王井滨1. 专题一 性能测试流程1) 性能需求调研交易选择原则如下 用户量大,用户操作频率高,有高峰期特征,数据量大,数据关联复杂,计算逻辑复杂。 数据操作类型覆盖:查询(模糊查询,非索引查询,多关联查询,多条件查询),新增,修改,计算。由于系统删除功能有限且操作量小,不进行删除操作的性能测试。2) 测试环境准备服务器名称参考配置数量说明负载均衡器WEB服务器应用服务器数据库服务器批处理服务器报表服务器资讯数据

2、源处理服务器数据库磁盘阵列3) 测试策略首先执行批量处理性能测试,可以获得联机性能测试的大部分数据,然后调整或补充数据,进行联机性能测试,最后进行稳定性测试。为测试系统的性能是否可以通过提高服务器配置或增加服务器数量而得到提升,首先进行基准测试,然后调整服务器的配置或数量,进行可扩展性测试。4) 测试计划详见测试计划模板1) 系统简介2) 测试需求3) 测试环境4) 测试组织5) 测试风险6) 测试时机7) 测试策略8) 测试场景9) 测试实施10) 交付物5) 测试用例、测试脚本参考28_JCB卡非功能测试的测试脚本和测试场景6) 执行测试、压力测试;负载测试;疲劳强度测试;7) 统计分析测

3、试结果LR analysis8) 测试报告Word、Excel、PPT2. 专题二 LoadRunner使用1) 银行项目常用协议HTTP/HTML: HTML-Based、URL-BasedJAVA: Eclipse编写开发脚本调用实际业务,LR里Action调用该脚本来实现并发设置WINDOWS SOCKETS:报文发送和接收2) 脚本开发及调试参数化:select next row和update value on的交叉选择;常用函数:lr_eval_string(),lr_save_string(),lr_output_message()等;C语言函数:strcat(),strcmp()

4、等;关联:自动关联、手动关联web_reg_save_param(),lr_save_param();3) 场景配置单一业务场景并发:基准测试;混合业务场景并发:按用户数量分;按业务百分比分;3 专题三 应用服务器监控3.1 UNIX3.1.1 性能监控-VMSTATvmstat命令用来获得有关进程、虚存、页面交换空间及CPU活动的信息。这些信息反映了系统的负载情况。vmstat首次运行时显示自系统启动开始的 各项统计信息,之后运行vmstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。有关进程的信息有:r-在运行队列中等待的进程数 b-在等待i

5、o的进程数 w-可以进入运行队列但被替换的进程 有关内存的信息有:avm :使用的页面数。fre:空闲队列中的页面数。swap-现时可用的交换内存(k表示)有关页面交换空间的信息有:re:在指定时间间隔内每秒要求收回的页面数。po:在指定时间间隔内换入到页面交换空间的页面数。pi:由页面交换空间换出的页面数。fr:在指定时间间隔内释放的页面数。sr:在指定时间间隔内检查的页面数(以确定该页面是否可以释放)。cy:按时钟算法每秒扫描的页面数。mf非严重错误的页面 de提前读入的页面中的未命中数 disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号 有关故障的信息有:in:在指定时间内的每

6、秒中断次数。sy:在指定时间内每秒系统调用次数。cs:在指定时间内每秒上下文切换的次数。in设备中断 sy系统中断 有关CPU的信息有:us:在指定时间间隔内CPU在用户态的利用率。sy:在指定时间间隔内CPU在核心态的利用率。id:在指定时间间隔内CPU空闲时间比。wa:在指定时间间隔内CPU因为等待I/O而空闲的时间比。cs用户进程使用的时间 sy系统进程使用的时间 idcpu空闲的时间 vmstat 可以用来确定一个系统的工作是受限于CPU还是受限于内存:如果CPU的sy和us值相加的百分比接近100%,或者运行队列(r) 中等待的进程数总是不等于 0,则该系统受限于CPU;如果pi、p

7、o的值总是不等于0,则该系统受限于内存。vmstat运用举例:vmstat f: 显示系统中的子进程数。vmstat s: 显示系统中不同的事件。vmstat i: 显示系统的中断数。vmstat hdisk0 hdisk1: 显示hdisk0 、hdisk1的使用情况。vmstat 1 10:每隔一秒显示一次系统的运行状况,共显示10次。3.1.2性能监控-IOSTATiostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。它不能对某个进程进行深入分析,仅对系统的整体情况

8、进行分析。 语法:iostat -t interval count interval指每次统计间隔的时间; count指按照这个时间间隔统计的次数。 3.1.3 top3.2 Linux3.2.1 找到最耗CPU的java线程1 ps命令命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息。 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间。2 top命令命令:top -Hp pidtop命令是Linux下常用的性能分析工具,能够实时

9、显示系统中各个进程的资源占用状况,类似于Windows的任务管理器3.2.1.1参数说明top - d p q c C S s n d指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。p通过指定监控进程ID来仅仅监控某个进程的状态。q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。S指定累计模式s使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。i使top不显示任何闲置或者僵死进程。c显示整个命令行而不只是显示命令名3.2.1.2其他命令top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练

10、的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。Ctrl+L擦除并且重写屏幕。h或者?显示帮助画面,给出一些简短的命令总结说明。k终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。i忽略闲置和僵死进程。这是一个开关式命令。q退出程序。r重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使

11、该进程拥有更高的优先权。默认值是10。S切换到累计模式。s改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。f或者F从当前显示中添加或者删除项目。o或者O改变显示项目的顺序。l切换显示平均负载和启动时间信息。m切换显示内存信息。t切换显示进程和CPU状态信息。c切换显示命令名称和完整命令行。M根据驻留内存大小进行排序。P根据CPU使用百分比大小进行排序。T根据时间/累计时间进行排序。 W将当前设置写入

12、/.toprc文件中。这是写top配置文件的推荐方法3.2.2判断I/O瓶颈1 mpstat命令命令:mpstat -P ALL 1 1000注意一下这里面的%iowait列,CPU等待I/O操作所花费的时间。这个值持续很高通常可能是I/O瓶颈所导致的。通过这个参数可以比较直观的看出当前的I/O操作是否存在瓶颈2 iostat命令命令: iostat -m -x 1 1000同样你可以观察对应的CPU中的%iowait数据,除此之外iostat还提供了一些更详细的I/O状态数据,比如比较重要的有:avgqu-sz : The average queue length of the reques

13、ts that were issued to the device. (磁盘队列的请求长度,正常的话2,3比较好。可以和cpu的load一样的理解)await : The average time (in milliseconds) for I/O requests issued to the device to be served. (代表一个I/O操作从wait到完成的总时间)svctm和%util都是代表处理该I/O请求花费的时间和CPU的时间比例。 判断是否瓶颈时,这两个参数不是主要的r/s w/s 和 rMB/s wMB/s 都是代表当前系统处理的I/O的一些状态,前者是我们常说的t

14、ps,后者就是吞吐量。这也是评价一个系统的性能指标3 pid命令命令:pidstat -p pid -u -d -t -w -h 1 1000相当实用的一个命令,可以基于当个进程分析对应的性能数据,包括CPU,I/O,IR , CS等,可以方便开发者更加精细化的观察系统的运行状态。不过pidstat貌似是在2.6内核的一些较新的版本才有,需要安装sysstat包。ubuntu下,可以通过sudo apt-get install sysstat进行安装。4 sar命令命令:sar -x pid 1 1000sar的功能可以覆盖mpstat,iostat的相关功能。5 dstat命令命令:dsta

15、t -y -tcp 1 1000通过dstat -tcp可以比较方便的看到当前的tcp的各种状态,不需要每次netstat -nat去看其他命令 netstat -natp:查看对应的网络链接,关注下Recv-Q,Send-Q,State。 lsof -p pid:查找对应pid的文件句柄 lsof -i: 80 :查找对应端口被哪个进程占用 lsof /tmp/1.txt:查找对应文件被哪个进程占用 tcpdump / wireshark:抓包分析工具 jstat / jmap / jstack / jps 等一系列的java监控命令4 专题四 数据库监控4.1 SQL Server数据库1

16、 SQLServer资源监控中指标缓存点击率(Cache Hit Ratio),该值越高越好。如果持续低于80%,应考虑增加内存。2 如果Full Scans/sec(全表扫描/秒)计数器显示的值比1或2高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。3 Number of Deadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。4 Lock Requests/sec(锁请求/秒),通过优化查询来减少读取次数,可以减少该计数器的值。4.2 Oracle数据库4.2.1 Oracle性能优化Or

17、acle9i的性能优化除了调整kernal之外就是主要对Oracle启动文件的调整,即调整SGA的参数。注意,不同操作系统不同位数的机器最优的参数不是一样的,这里主要有windows和unix之分,32位和64位之分。首先需要调大进程数和游标数,一般默认的值对实际应用来说都比较小,比如说,进程数可以调到300,游标数可以调到500。其次,看一个经验公式: OS 使用内存+ SGA + session*(sort_area_size + hash_area_size +2M)0.7RAM,通常认为此时的SGA比较合理。这里sort_area_size为64k, hash_area_size为12

18、8k(当排序多的时候需要增大sort_area_size,按调整后的值计算),session表示最大并发进程数,假设100个。假如1G内存的机器,OS占用200M,PGA占用200M左右,那么SGA可以设为400-500M,如果2G内存可以1G给SGA,8G可以5G给SGA。不过对于32位数据库来说,通常最多只能使用1.7G内存。然后,SGA内参数设置的基本原则是:data buffer 通常可以尽可能的大,shared_pool_size 要适度,log_buffer 通常大到几百K到1M就差不多。具体的:data buffer 1G内存可以设置500M,2G设为1.2G,8G可设为5G 。

19、shared_pool_size不易过大,通常应该控制在200M-300M,如果使用了大量的存储过程,可以根据SGA的值增大到500M,如果增大后命中率得不到提高,则增加是无益的。具体的:1G内存可以设置100M,2G设为150M,8G可设为300M。如不使用java,java_pool_size 10-20M即可。large_pool_size如果不设置MTS,在20M -30M 即可,假如设置 MTS,可以考虑为 session * (sort_area_size + 2M)。最后,关于内存的设置可根据statspack信息和v$system_event,v$sysstat,v$sesst

20、at,v$latch 等view信息来考虑微调。4.2.2 Oracle的其他调整为了Oracle高效率的运行,除了上面提到的内存因素之外,还有就是需要良好的数据库设计:表、视图、索引和日志的合理规划和建立。I/O的性能也是重要因素,应尽量减少页交换和页分配。此外,就是改善检查点的效率4.2.3 Oracle的监控指标1 如果自由内存接近于0而且库快存或数据字典快存的命中率小于0.90,那么需要增加SHARED_POOL_SIZE的大小。快存(共享SQL区)和数据字典快存的命中率:select(sum(pins-reloads)/sum(pins) from v$librarycache;se

21、lect(sum(gets-getmisses)/sum(gets) from v$rowcache;自由内存: select * from v$sgastat where name=free memory;2 如果数据的缓存命中率小于0.90,那么需要加大DB_BLOCK_BUFFERS参数的值(单位:块)。缓冲区高速缓存命中率:select name,value from v$sysstat where name in (db block gets,consistent gets,physical reads) ;Hit Ratio = 1-(physical reads / ( db b

22、lock gets + consistent gets)3 如果日志缓冲区申请的值较大,则应加大LOG_BUFFER参数的值。日志缓冲区的申请情况 :select name,value from v$sysstat where name = redo log space requests ;4 如果内存排序命中率小于0.95,则应加大SORT_AREA_SIZE以避免磁盘排序 。内存排序命中率 :select round(100*b.value)/decode(a.value+b.value), 0, 1, (a.value+b.value), 2)from v$sysstat a, v$sy

23、sstat b where a.name=sorts (disk) and b.name=sorts (memory)5 专题五 中间件监控5.1 WeblogicwebLogic Server的核心组件由监听线程,套接字复用器和可执行线程的执行队列组成。当服务器由监听线程接收到连接请求后,将对它的连接控制权交给等待接收请求的套接字复用器。然后套接字复用器读取离开套接字的请求,并将此请求及相关安全信息或事务处理环境一起置入适当的执行队列中(一般为默认的执行队列)。 当有一个请求出现在执行队列中时,就会有一个空闲的执行线程从该队列中取走发来的该请求,并返回应答,然后等待下一次请求。因此要提高we

24、bLogic的性能,就必须从调整核心组件性能出发。与webLogic特性相关的技巧有:使用自动生成主键,webLogic为Oracle和Sqlserver两种数据库的CMP提供了自动生成主键功能,节约了Entity Bean产生主键的时间,同时设key-cache-size不小于100;webLogic管理事务性能更好,使用容器管理,而不是Bean管理事务;webLogic提供了为CMP动态查询和批量插入功能,对性能也有很大帮助。5.2 Websphere5.2.1 线程池线程池使服务器的组件能重用线程以消除在运行时创建新线程的消耗,包括时间和资源。缺省值:最小10 最大50建议值:最小25(

25、Linux) 最大50(Unix)上限:最大10005.2.2 数据库连接池5.2.2.1 缺省值最小连接数 1 最大连接数10连接超时180秒空闲超时1800秒孤立超时1800秒语句高速缓存大小10自动连接清楚5.2.2.2 连接池大小影响1 最小池大小较小的池在需求较低时需要较小的开销,因为保持打开的数据库连接较少。当需求较高时,因为如果池中所有其他的连接都在使用当中,则创建新的连接,所以第一个应用程序经历较慢的响应。2 最大池大小如果已经达到了最大连接数并且所有连接都在使用中,则其他连接请求会最多等待指定为连接超时的秒数。最大池大小会影响程序的性能。较大的池在需求较高时需要更多的开销,因

26、为在需求高峰时有更多的连接打开。这些连接一直存留,直到空闲而脱离池。如果最大池较小,则在高峰期会发生更多的等待时间或可能有连接超时错误。5.2.2.3 判断瓶颈方法当使用Tivoli Performance Viewer工具监控JMS时,某个连接工厂的连接池大小和空闲连接池大小指的是该工厂管理的使用connection数和空闲connection数。而某个connection的连接池大小和空闲连接池大小指的是该connection管理的活动会话数和空闲会话数。在WAS管理控制台上看到连接工厂对应2个属性:连接池和会话池。连接池的最大连接数表示一个连接工厂内最多可拥有的连接数,会话池的最大连接数

27、表示一个连接内可拥有的最大会话数。而“JMS连接工厂”节点中显示的连接池和空闲连接池的数值只是下面所有叶子节点的数值之和,本身并没有实际意义。6 专题六 调优策略6.1 服务器调优6.1.1 Linux 调优基本策略(ulimit)ulimit -a 用来显示当前的各种用户进程限制。 Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况, 设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个: ulimit -u 10000 对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言, 最好通过使用 ulimi

28、t -n xx 修改每个进程可打开的文件数,缺省值是 1024。 ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024 其他建议设置成无限制(unlimited)的一些重要设置是: 数据段长度:ulimit -d unlimited 最大内存大小:ulimit -m unlimited 堆栈大小:ulimit -s unlimited CPU 时间:ulimit -t unlimited 虚拟内存:ulimit -v unlimited 暂时地,适用于通过 ulimit 命令登录 shell 会话期间。 永久地,通过将一个相应的 ulimit 语句添加到由登

29、录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如: 1)、解除 Linux 系统的最大进程数和最大文件打开数限制: vi /etc/security/limits.conf # 添加如下的行 * soft noproc 11000 * hard noproc 11000 * soft nofile 4100 * hard nofile 4100 说明:* 代表针对所有用户 noproc 是代表最大进程数 nofile 是代表最大文件打开数 2)、让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制: a、vi /etc/ssh/sshd_config 把 UserLogin 的值改为 yes,并把 # 注释去掉 b、重启 sshd 服务: /etc/init.d/sshd restart3)、修改所有 linux 用户的环境变量文件:vi /etc/profile ulimit -u 10000ulimit -n 4096ulimit -d unlimited ulimit -m unlimited ulimit -s unlimited ulimit -t un

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1