当前位置:文档之家› WLS性能调优

WLS性能调优


Thread dump
• 确定执行线程在每次dump都有进展 • 特别注意以下MW状态的线程
• • • • I/O,call DB Loop Backs 连接外部的servers 执行线程同步造成的死锁
数据模型
优化 典型部署方式 架构 响应时间 数据容量 可扩展性
关系型 - SQL
关系型 - SQL
磁盘为中心 数据库层 客户机/服务器 毫秒到秒级
TB到PB级 Cluster (RAC) & SMP
内存为中心 应用层 嵌入式(直接数据访问) 微秒到毫秒级
GB级 SMP
内存数据网格Coherence
• /db/doc/816-0607 (solaris8) • /db/806-7009 (solaris9) • /pseries/en_US/aixbman/pr ftungd/prftungd.htm (AIX) • /hpux/onlinedocs/TKP-90203/TKP90203.html (HP-UX) • /ipsysctl-tutorial.html (Linux) • /windows2000/techinfo/howitwork s/communications/networkbasics/tcpip_implement.asp (Windows)
Java Data Structures in Memory
SQL Data Structures in Memory
Web Cache offloads Web Servers, Improves Network Performance via Compre Java Structures in Memory; Very Fast Access to Java Data in Memory across MidTier Grid
Transaction Logs Checkpoint files
Application-Tier Platform
内存数据库与磁盘数据库的比较
数据库特性 目标应用 Oracle 10g 关键业务应用 Database Oracle TimesTen In-Memory Database 关键业务应用
Data Services
Coherence™ Data Grid
Data Sources Databases Mainframes Web Services
内存数据网格Coherence
Caching Analytics
Transactions
Events
内容
• • • • • • 性能调优概述 Oracle 高性能产品及技术简介 操作系统调优 网络调优 JVM 调优 WebLogic Server调优
• 嵌入式 或 客户机-服务器式
Network
Application
TimesTen libraries
...
Application
TimesTen libraries
• 标准 APIs (ODBC, JDBC, SQL92) • 易于安装与配置
ClientServer
In-Memory Database(s)
LAN Infrastructure
• LAN必须有足够的处理应用高峰的能力。如果网络流量 经常大于网络资源的承载能力,则需要:
• 重新设计网络和重新分配负载 • 减少客户端数量 • 提高系统对网络负载的处理能力
网络监控与调优
• 网络调优应监控几个关键的网络统计值(数据包再发 送,重复数据包,数据包监听丢失)以监控网络性能,解决 性能问题时,不要忘记检查数据包丢失或错误 • netstat (显示协议统计和当前的 TCP/IP 网络连接 )
Time wait interval
• 应用程序关闭的TCP连接在被操作系统释放前,将先 进入等待状态。套接字处于等待状态的时间称为time wait interval。在这种状态下,操作系统会维护分配给 该socket的资源,包括文件描述符 • This parameter determines the time interval that a TCP socket is kept alive after issuing a close call
Times Ten & RAC provide Scalability to Database Data improving Query & Transaction Write Performance
TimesTen: 针对物理内存而特别设计优化的数据库
• 所有数据存于物理内存 • 采用关系型数据模型 • 针对物理内存而特别设计优化的 数据存储结构与算法 • 多进程/多线程共享数据存储 (Data Store)
性能优化的准则
• 性能调整并不是万全之策
• 简而言之,高系统性能取决于:良好的设计、良好的实现、明确的性 能目标和性能调整。
• 性能调整是一个持续不断的过程。
• 其目的在于达到性能目标,而不是消除所有瓶颈。系统中的资源有限。 根据定义,系统中至少有一种资源(CPU、内存或 I/O)是瓶颈。通 过调整可将瓶颈对性能目标的影响降到最低程度。
BEA JRockit Mission Control Architecture
JRockit Management Console
GC

• • • •
影响 GC 的几点
对象创建的频率 对象的Life Spans Type of Objects Relations between Objects
• netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]
内容
• • • • • • 性能调优概述 Oracle 高性能产品及技术简介 操作系统调优 网络调优 JVM 调优 WebLogic Server调优
JVM
JVM vendor and version
swap空间
• 太多的Swap空间会浪费磁盘空间,而太少的Swap空 间,则系统会发生错误,如果Swap空间用完,则服务 进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。 • Swap分区的数量对性能也有很大的影响
操作系统调优参考
操作系统调优
• 每种操作系统缺少的优化参数是不同的。在Windows 平台,缺省的设置通常就足够了,在UNIX和Linux通常 需要进行适当的调整 • UNIX和Linux通常需要调整以下一些参数设置
• • • • Swap空间 Process and threads Tcp parameters File Descriptor
• 推荐使用经过WLS认证的JVMs • 在IA架构的系统上应考虑使用Jrockit
JRockit Benefits
• Weblogic JRockit JVM is designed for server-side applications. • It employs adaptive optimization to significantly improve runtime performance. • It has adaptive garbage collection and heap management. • It offers full support for 32 and 64 bit JRockit on Intel EM64T/AMD64 and compatibles. • JRockit also supports Solaris/Sparc architecture. • It offers support for very large heaps on 64 bit platforms. • JRockit Mission Control tools suite offers better management, tuning and troubleshooting.
• 在调优测试时,应使用系统监控工具来收集资源利用 的情况,如cpu利用率,磁盘I/O,网络效率等
文件描述符
• 操作系统把TCP套接字当做一种特殊的文件存取格式 来处理,并使用文件描述符来跟踪记录操作系统进程 打开的套接字和文件。为了控制资源的使用情况,操 作系统会限制每个进程打开的文件描述符的数量 • 默认情况下,一个进程可获得的文件描述符的数量取 决于操作系统的类型及它的配置情况
• thread dumps记录了current stack trace, state, and name of the threads 。 • 调用的堆栈包含完整的类名,所执行的方法,如果可 能的话还有源代码的行数。 • 可以使用thread dumps来分析应用的挂起、退出和响 应时间较差的情况
• • • • 提供单一、可靠、一致的数据层 提供同台的数据保存能力,包括容错和负载均衡 保证了数据容量按照处理能力线性升级 在不同应用,同一个应用的不同模块之间方便的共享数据
Enterprise Applications Application Tier Real Time Clients Web Services
• 设计应用程序时要考虑到性能: • 保持设计的简单性 – 避免不当使用已发布模式。 • 应用 Java EE 性能模式。 • 优化 Java 代码。
衡量的标准及关注点
• • • • 系统响应时间 TPS 扩展性 其他
内容
• • • • • • 性能调优概述 Oracle 高性能产品及技术简介 操作系统调优 网络调优 JVM 调优 WebLogic Server调优

• •
不要使用 System.gc(),因为这是个 Full GC,中断时间 会比较长,效率低。也不要使用 finalize() 方法。 Object 不需要时,显示的将其赋值为 null 多用 Pool,但是小的 Object 不要使用 pool,因为会带来 GC 的效率问题
相关主题