您好,欢迎访问三七文档
InsertPictureHereWLSPerformanceTuningJerryHuJerry.hu@oracle.com内容•性能调优概述•Oracle高性能产品及技术简介•操作系统调优•网络调优•JVM调优•WebLogicServer调优一个Web系统的性能是由多种因素决定的性能优化的准则•性能调整并不是万全之策•简而言之,高系统性能取决于:良好的设计、良好的实现、明确的性能目标和性能调整。•性能调整是一个持续不断的过程。•其目的在于达到性能目标,而不是消除所有瓶颈。系统中的资源有限。根据定义,系统中至少有一种资源(CPU、内存或I/O)是瓶颈。通过调整可将瓶颈对性能目标的影响降到最低程度。•设计应用程序时要考虑到性能:•保持设计的简单性–避免不当使用已发布模式。•应用JavaEE性能模式。•优化Java代码。衡量的标准及关注点•系统响应时间•TPS•扩展性•其他内容•性能调优概述•Oracle高性能产品及技术简介•操作系统调优•网络调优•JVM调优•WebLogicServer调优NetworkOracle全面满足客户的高性能需求WebCacheWebServersApplicationServersCoherenceRACTimesTenHTMLDataStructuresinMemoryJavaDataStructuresinMemorySQLDataStructuresinMemoryWebCacheoffloadsWebServers,ImprovesNetworkPerformanceviaCompressionCoherencecachesJavaStructuresinMemory;VeryFastAccesstoJavaDatainMemoryacrossMid-TierGridTimesTen&RACprovideScalabilitytoDatabaseDataimprovingQuery&TransactionWritePerformanceWebTierApplicationTierDatabaseTierTimesTen:针对物理内存而特别设计优化的数据库•所有数据存于物理内存•采用关系型数据模型•针对物理内存而特别设计优化的数据存储结构与算法•多进程/多线程共享数据存储(DataStore)•嵌入式或客户机-服务器式•标准APIs(ODBC,JDBC,SQL-92)•易于安装与配置Application-TierPlatformNetworkIn-MemoryDatabase(s)ApplicationTimesTenlibrariesTransactionLogs...Client-ServerCheckpointfilesApplicationTimesTenlibraries内存数据库与磁盘数据库的比较数据库特性OracleDatabase10gOracleTimesTenIn-MemoryDatabase目标应用关键业务应用关键业务应用数据模型关系型-SQL关系型-SQL优化磁盘为中心内存为中心典型部署方式数据库层应用层架构客户机/服务器嵌入式(直接数据访问)响应时间毫秒到秒级微秒到毫秒级数据容量TB到PB级GB级可扩展性Cluster(RAC)&SMPSMP内存数据网格Coherence•提供单一、可靠、一致的数据层•提供同台的数据保存能力,包括容错和负载均衡•保证了数据容量按照处理能力线性升级•在不同应用,同一个应用的不同模块之间方便的共享数据MainframesDatabasesWebServicesEnterpriseApplicationsRealTimeClientsWebServicesApplicationTierCoherence™DataGridDataSourcesDataServices内存数据网格CoherenceCachingAnalyticsTransactionsEvents内容•性能调优概述•Oracle高性能产品及技术简介•操作系统调优•网络调优•JVM调优•WebLogicServer调优操作系统调优•每种操作系统缺少的优化参数是不同的。在Windows平台,缺省的设置通常就足够了,在UNIX和Linux通常需要进行适当的调整•UNIX和Linux通常需要调整以下一些参数设置•Swap空间•Processandthreads•Tcpparameters•FileDescriptor•在调优测试时,应使用系统监控工具来收集资源利用的情况,如cpu利用率,磁盘I/O,网络效率等文件描述符•操作系统把TCP套接字当做一种特殊的文件存取格式来处理,并使用文件描述符来跟踪记录操作系统进程打开的套接字和文件。为了控制资源的使用情况,操作系统会限制每个进程打开的文件描述符的数量•默认情况下,一个进程可获得的文件描述符的数量取决于操作系统的类型及它的配置情况Timewaitinterval•应用程序关闭的TCP连接在被操作系统释放前,将先进入等待状态。套接字处于等待状态的时间称为timewaitinterval。在这种状态下,操作系统会维护分配给该socket的资源,包括文件描述符•ThisparameterdeterminesthetimeintervalthataTCPsocketiskeptaliveafterissuingaclosecallswap空间•太多的Swap空间会浪费磁盘空间,而太少的Swap空间,则系统会发生错误,如果Swap空间用完,则服务进程无法启动,通常会出现“applicationisoutofmemory”的错误,严重时会造成服务进程的死锁。•Swap分区的数量对性能也有很大的影响操作系统调优参考•(solaris8)•(solaris9)•(AIX)•(HP-UX)•(Linux)•(Windows)内容•性能调优概述•Oracle高性能产品及技术简介•操作系统调优•网络调优•JVM调优•WebLogicServer调优带宽•带宽指的是传输系统能够响应的信号的最高频率,因此它反映了传输系统的容量•网络调优应监控几个关键的网络统计值(数据包再发送,重复数据包,数据包监听丢失)以监控网络性能,解决性能问题时,不要忘记检查数据包丢失或错误•应该确保应用系统有足够的带宽,如客户端到WebLogicServer,WebLogicServer,到数据库服务器之间的带宽,在一机器上运行的WebLogicServer,必须要有充足的带宽来处理维护所有WebLogicServer,客户端的连接。•在集群中,Servlets和EJBs复制session信息需要更大的网络带宽•使用压缩,如gzipLANInfrastructure•LAN必须有足够的处理应用高峰的能力。如果网络流量经常大于网络资源的承载能力,则需要:•重新设计网络和重新分配负载•减少客户端数量•提高系统对网络负载的处理能力网络监控与调优•网络调优应监控几个关键的网络统计值(数据包再发送,重复数据包,数据包监听丢失)以监控网络性能,解决性能问题时,不要忘记检查数据包丢失或错误•netstat(显示协议统计和当前的TCP/IP网络连接)•netstat[-a][-e][-n][-s][-pprotocol][-r][interval]内容•性能调优概述•Oracle高性能产品及技术简介•操作系统调优•网络调优•JVM调优•WebLogicServer调优JVMJVMvendorandversion•推荐使用经过WLS认证的JVMs•在IA架构的系统上应考虑使用JrockitJRockitBenefits•WeblogicJRockitJVMisdesignedforserver-sideapplications.•Itemploysadaptiveoptimizationtosignificantlyimproveruntimeperformance.•Ithasadaptivegarbagecollectionandheapmanagement.•Itoffersfullsupportfor32and64bitJRockitonIntelEM64T/AMD64andcompatibles.•JRockitalsosupportsSolaris/Sparcarchitecture.•Itofferssupportforverylargeheapson64bitplatforms.•JRockitMissionControltoolssuiteoffersbettermanagement,tuningandtroubleshooting.BEAJRockitMissionControl-ArchitectureJRockitManagementConsoleGC•影响GC的几点•对象创建的频率•对象的LifeSpans•TypeofObjects•RelationsbetweenObjects•不要使用System.gc(),因为这是个FullGC,中断时间会比较长,效率低。也不要使用finalize()方法。•Object不需要时,显示的将其赋值为null•多用Pool,但是小的Object不要使用pool,因为会带来GC的效率问题手工进行GCthreadDumps•threaddumps记录了currentstacktrace,state,andnameofthethreads。•调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数。•可以使用threaddumps来分析应用的挂起、退出和响应时间较差的情况Threaddump•确定执行线程在每次dump都有进展•特别注意以下MW状态的线程•I/O,callDB•LoopBacks•连接外部的servers•执行线程同步造成的死锁•检测WLS线程死锁•从正确等待锁的线程开始•找到目前锁的拥有者,推断Blocked原因JVM调优参考•TuningGarbageCollectionwiththe1.4.2JavaVirtualMachine•JavaHotSpotVMOptions•BigHeapsandIntimateSharedMemory•PerformanceDocumentationfortheJavaHotSpotVM•AnalyzingJavaApplicationProblems内容•性能调优概述•Oracle高性能产品及技术简介•操作系统调优•网络调优•JVM调优•WebLogicServer调优TuningWebLogicServer-NativeIO•WLS为一些平台提供性能包,这些性能包更紧密地结合平台的I/O操作提高了应用程序性能,激活本地的I/O性能包将产生很大的性能提高TuningWebLogicServer-AcceptBacklog•WLS使用AcceptBacklog参数规定WLS向操作系统请求的队列的大小,AcceptBacklog属性决定了在等待队列(监听队列)中最多可以有多少TCP连接等待处理,默认值为50•如果在许多客户端连接被拒绝,而在
本文标题:WLS性能调优.
链接地址:https://www.777doc.com/doc-2867759 .html