如何进行性能调优_第1页
如何进行性能调优_第2页
如何进行性能调优_第3页
如何进行性能调优_第4页
如何进行性能调优_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何进行性能调优,Seling Chen,更多性能测试资料尽在ROAD软件测试论坛/bbs/,内容介绍,旨在与大家交流性能测试,分享知识。内容主要包括性能分析与调优思路,通过对典型系统的分析来讲解调优方法。,Contents,系统性能瓶颈,CPU进程等待,内存增加,虚拟内存使用,磁盘IO增加CPU开销增加(进程切换、缺页处理),系统性能瓶颈,系统应用,硬件资源,操作系统,服务器软件,系统架构,应用程序,系统性能瓶颈,1.通过缓存来提高读写效率2.调整存储3.条带化,Contents,系统优化原则,架构、业务及程序的优化最有效尽量减少资源的占用预留扩展空间,能够应付突发状况,MVC,资源均衡,业务优化,配置优化,Contents,系统特征,门户网站,企业生产应用,科学计算,流媒体应用,文件服务,政企办公,静,动,动&静,1.进程多2.消耗内存多3.磁盘IO频繁,1.网络带宽瓶颈2.缓存多,1.DB压力大2.存储压力大3.内存压力大4.CPU压力大,B/S,Contents,企业应用特点,1.数据量大2.运算复杂3.安全级别高4.系统7X24高负荷5.CPU、内存、存储压力大6.业务运算在DB层实现(减少信息传输、DB高效运算)7.业务建模作用突显8.DB性能突显,典型架构,性能表现,系统资源:服务器、客户机CPU,内存,硬盘等配置,操作系统:操作系统资源分配,应用服务:中间件、中间件配置,应用程序:程序性能,数据库:参数配置,性能瓶颈,性能分析方向,硬盘 虚拟内存(交换分区swap)内存CPU缓存CPU执行队列执行,数据,慢,快,分析方向,存储体系,硬 盘Bi(read)Bo(write),虚 拟内存 Swap,内 存Free Cache,Si(=0正常),SO(=0正常),Bi(接近于0性能良好),Bo(接近于0性能良好),Bi,Bo,DB优化思路减少IO,APP层:APP SQL请求,DB Coding层:解析并优化SQL、管理锁、并发等,Mem层:高速缓存、共享内存池、PGA(排序 散列)、SGA(缓存),磁盘:物理读写表、索引、读写临时工作区、重做日志等,这一层的优化代价最高、而且随着业务量的增加变得失效治标不治本,ASM 自动存储管理也不是万能,有时需要人工设置,代码优化成本最低解决本质问题,减少请求能够显著提高性能,调优思路,DB优化思路,APP层:APP SQL请求,DB Coding层:解析并优化SQL、管理锁、并发等,Mem层:高速缓存、共享内存池、PGA(排序 散列)、SGA(缓存),磁盘:物理读写表、索引、读写临时工作区、重做日志等,调优思路,减少SQL请求、提高运算效率优化APP代码优化物理结构(分区、索引、冗余)SQL请求尽可能少、返回最小化查询器优化避免过载单条SQL优化并行SQL,提高并发执行能力减少资源争用(锁、闩锁、缓存),缓存,缓冲IO请求降低IO优化内存、减少物理IO访问SGA(缓存高频访问数据)PGA(排序、散列)AMM(自动内存管理)人工干预,提高IO带宽条带化SDD等新的专用文件存储产品,Web|APP优化,页面简化表单压缩局部刷新仅取所需减少不必要请求逻辑清淅谨慎继承程序算法优化(二分查找 哈希表)批处理延迟加载防止内存泄露减少大对象引用防止争用死锁。,Tomcat连接数,Tomcat连接数D:tomcat7conf server.xml,maxThreads=210 表示最多同时处理210个连接 minSpareThreads=25 表示即使没有人使用也开这么多空线程等待 maxSpareThreads=“75” 表示最多可以有75个空线程处在等待状态acceptCount=“100”线程都被占用后最多可以有100个线程处于在等待队列中,多的将不响应,Tomcat连接数,设置管理员帐号与密码/Tomcat/conf/tomcat-users.xml 中开放 启动后,访问: http:/URL:port/manager/status,DB 连接数,数据库连接数占满,事务失败使用连接池,配置适当的连接数评估用户量,设置连接数容器线程数占满操作系统支持的线程数 (Win Server 2000,Linux 1000)排队(12306)连接池配置池子大小回收周期,DB 连接数,数据库连接数查询与修改-查询数据库允许的最大连接数:select value from v$parameter where name = processes;-修改数据库允许的最大连接数:alter system set processes = 300 scope = spfile;select count(1) from v$session;-查询当前连接数c3p0连接池配置,Jboss Jndi,persistence.xml,jndi:marine-ds,JVM监控:Jconsole 监控图,点击:,VM Telemetry Views-GC,GC后内存占用量下不来就大多有问题,此图反映的系统运行就比较平稳,GC后基本都是在同一水平线上,VM Telemetry Views-GC,此图反映的系统运行平稳,GC后可用内存都回到同一水平,分析内存溢出,先开始录制Memory,标记当前状态,运行后增长的为红色部分,如果请求停止后(GC一次),红色的不回收,则很可能是内存泄露,还要接合VM Telemetry Views一起来看,分析内存溢出,分析内存溢出,1,2,3,可以找到是什么方法调用了此实例,内存溢出问题,内存溢出对象实例化后没有回收(常驻内存),一直占用内存,导致JVM可用内存变小,最后系统崩溃。java.lang.OutOfMemoryError: Java heap space 堆溢出(年老代占满)java.lang.OutOfMemoryError: Java Permanent space 永久区溢出java.lang.StackOverflowError堆栈溢出,递归没返回,或者循环调用造成java.lang.OutOfMemoryError: unable to create new native thread这个异常是由于操作系统没有足够的资源来产生这个线程造成的,可以通过修改-Xss来减少分配给单个线程的空间,也可以增加系统总共内生产的线程数。设置(JOBSS):Set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4一般的要将-Xms和-Xmx选项设置为相同,一次性分配不能无限制的分配,即使你的内存足够大,Heap Size空间太大,GC时耗时会更长,影响系统使用,适当够用就行MaxPermSize 默认为64M,推荐PermSize与MaxPermSize设置同等大,减小开销D:tomcat7bincatalina.bat 在第一行加入set JAVA_OPTS=-XX:PermSize=128M -XX:MaxPermSize=128m -Xms512m -Xmx512m,OutOfMemoryError,package cn.seling.www.outMem.OutOfMemoryErrorException in thread Main Thread java.lang.OutOfMemoryError: allocLargeObjectOrArray: Ljava/lang/Object;, size 347827296at java.util.Arrays.copyOf(Arrays.java:2760)at java.util.Arrays.copyOf(Arrays.java:2734)at java.util.ArrayList.ensureCapacity(ArrayList.java:167)at java.ut

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论