Oracle中的中间件体系结构多层调整
2007-05-11 12:21:46 来源:WEB开发网核心提示:新的体系结构带来新的挑战 dwards 认为,从客户/服务器向多层体系结构的改变影响了数据库性能优化和调整的几个重要方面 — 两个最重要的方面是资源管理以及数据库工作负载的跟踪,Oracle中的中间件体系结构多层调整, 暗藏的资源泄漏 Edwards 解释说:“在拥有专用 Oracle 服务器进
新的体系结构带来新的挑战
dwards 认为,从客户/服务器向多层体系结构的改变影响了数据库性能优化和调整的几个重要方面 — 两个最重要的方面是资源管理以及数据库工作负载的跟踪。
暗藏的资源泄漏
Edwards 解释说:“在拥有专用 Oracle 服务器进程的传统客户/服务器环境中,保护资源的方法完全不同。Oracle 会话启动和停止过程所在的应用程序连接具有非常有限的生命期。因此,如果存在一些效率较低和较差的资源管理,比如应用程序无法关闭游标或应用程序有内存泄漏 — 那么,当连接断开时,这些都被自动清除,泄漏及低效率的影响和持续时间不太明显。在多层世界里,您倾向于拥有一个由应用服务器多次重复启动和使用的连接池。因此,如果有游标或内存泄漏,则它们会增加和持续存在,并不会消失。资源泄漏 — 如连接泄漏、内存泄漏和游标泄漏 — 具有明显的影响,并可能最终导致产品应用程序或环境发生故障。”
Edwards 经常被召来,尝试解决非常重要的硬件服务器、数据库或应用程序由于这种泄漏而无法正常工作的情况。他回忆道:“有一次,一个大型的产品级硬件服务器 — 它支持多个全天候工作的 oracle 数据库 — 由于 PGA 内存泄漏而反复崩溃。数据库应用程序和配置导致操作系统耗尽了可用的虚拟内存(物理内存和交换空间) — 我们在一个 oracle 实例中发现了内存泄漏,大小总计超过 45 吉字节!在另一个案例中,连接的泄漏使应用服务器的连接池不可用;应用程序中不良的连接管理导致应用服务器的多个实例被制约并挂起。而在另一个案例中,应用程序在不经常执行的代码体中具有大量游标泄漏。这些泄漏的最常见结果是单个连接数超出游标的最大数量 — 但有时整个 Oracle 实例会有危险。”
[]
赞助商链接