热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Oracle等待事件DFSlockhandle

在做性能压力测试,测试结果不能通过,获取现场一个小时的AWR报告,发现大量的等待事件,数据库是RAC,版本是Oracle11.2.0.4.0。

在做性能压力测试,测试结果不能通过,获取现场一个小时的AWR报告,发现大量的等待事件,数据库是RAC,版本是Oracle 11.2.0.4.0。

在做性能压力测试,测试结果不能通过,获取现场一个小时的AWR报告,发现大量的等待事件,数据库是RAC,版本是Oracle 11.2.0.4.0。

Snap IdSnap TimeSessionsCursors/SessionInstances

Begin Snap: 1607 21-10月-14 20:00:03 560 67.9 2

End Snap: 1608 21-10月-14 21:00:11 573 12.4 2

Elapsed: 60.13 (mins)

DB Time: 2,090.75 (mins)

EventWaitsTotal Wait Time (sec)Wait Avg(ms)Wait Class

rdbms ipc reply 32,876,281 44.9K 1 35.8 Other

DB CPU 21.3K 17.0

direct path read 435,808 18.8K 43 15.0 User I/O

DFS lock handle 4,204,866 7977.9 2 6.4 Other

log file sync 8,541 252.7 30 .2 Commit

1. 排在第一的等待事件是rdbms ipc reply , 解释是The rdbms ipc reply Oracle metric event is used to wait for a reply from one of the background processes.说明lgwr,dbwr等后台进程空闲,等待前台进程给予他们的工作任务。DFS lock handle这个等待事件很可疑,官方解释是:

The session waits for the lock handle of a global lock request. The lock handle identifies a global lock. With this lock handle, other operations can be performed on this global lock (to identify the global lock in future operations such as conversions or release). The global lock is maintained by the DLM.

大致意思是无法获得global cache lock的handle时候所记录的等待事件。

2. 在网上看了下大家的处理方式,序列的cache过小,数据库服务器CPU过高,做过相应的调整和监控,,都不解决问题。在做性能测试的时候,

select chr(bitand(p1,-16777216)/16777215) || chr(bitand(p1, 16711680)/65535) "Lock",

to_char(bitand(p1, 65536)) "Mode",

p2, p3 , seconds_in_wait

from v$session_wait

where event = 'DFS lock handle';

发现了BB锁,意思是:2PC distributed transaction branch across RAC instances DX Serializes tightly coupled distributed transaction branches。

大致意思是分布式事务两个RAC实例中across。我随即做出调整,将weblogic连接改为只是连接一个RAC节点,再进行测试。测试结果如下:

Snap IdSnap TimeSessionsCursors/SessionInstances

Begin Snap: 1680 24-10月-14 12:00:13 864 9.5 2

End Snap: 1681 24-10月-14 13:00:17 863 9.9 2

Elapsed: 60.07 (mins)

DB Time: 80.28 (mins)

EventWaitsTotal Wait Time (sec)Wait Avg(ms)Wait Class

DB CPU 2335.6 48.5

rdbms ipc reply 5,326,201 645.6 0 13.4 Other

gc buffer busy acquire 39,052 226.7 6 4.7 Cluster

DFS lock handle 672,757 225.8 0 4.7 Other

DFS lock handle减少了非常多,但还是存在,不过性能测试结果好了很多。

3. 如何彻底解决呢?先说下DFS lock handle,说简单一点就是一个object在不同的实例中DML,每个实例在自己处理自己的object。这是一个权衡的问题,如果weblogic动态连接实例,就无法保证每次处理自己的object,但这样可以容灾,其他的实例挂了也没问题;如果是指定单独的实例,相对于动态是优、缺点是反的。还有一种说法是metalink中有关于DFS lock handle的都是bug,目前尚不清楚数据库升级后是不是会好一点。

Oracle 11g下重现library cache lock等待事件

Oracle 11g等待事件:db file async I/O submit

[Oracle] 常见的等待事件

oracle Log Buffer内部机制以及常见等待事件

RAC数据库中的'log file sync'等待事件

Oracle Tuning Log File Sync 等待事件的几种策略

Oracle等待事件详细分析


推荐阅读
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 利用CSV Data Set Config实现JMeter参数化测试的详细指南
    本文详细介绍了如何使用JMeter中的CSV Data Set Config元素来实现参数化测试。通过该配置元件,用户可以轻松地从外部CSV文件中读取数据,从而提高测试的灵活性和可扩展性。文章不仅提供了具体的配置步骤,还结合实际案例,展示了如何在不同的测试场景中应用这一功能,帮助读者更好地理解和掌握JMeter参数化测试的技巧。 ... [详细]
  • 解读中台架构:微服务与分布式技术的区别及应用
    中心化与去中心化是长期讨论的话题。中心化架构的优势在于部署和维护相对简单,尤其在服务负载较为稳定的情况下,能够提供高效稳定的性能。然而,随着业务规模的扩大和技术需求的多样化,中心化架构的局限性逐渐显现,如扩展性和故障恢复能力较差。相比之下,微服务和分布式技术通过解耦系统组件,提高了系统的灵活性和可扩展性,更适合处理复杂多变的业务场景。本文将深入探讨中台架构中微服务与分布式技术的区别及其应用场景,帮助读者更好地理解和选择适合自身业务的技术方案。 ... [详细]
  • 近年来,BPM(业务流程管理)系统在国内市场逐渐普及,多家厂商在这一领域崭露头角。本文将对当前主要的BPM厂商进行概述,并分析其各自的优势。目前,市场上较为成熟的BPM产品主要分为两类:一类是综合型厂商,如IBM和SAP,这些企业在整体解决方案方面具有明显优势;另一类则是专注于BPM领域的专业厂商,它们在特定行业或应用场景中表现出色。通过对比分析,本文旨在为企业选择合适的BPM系统提供参考。 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 如何利用Git实现高效的多人协作开发(远程仓库应用实例)——Ares Zhao
    Git作为一种分布式版本控制系统,每位开发者都是本地仓库的管理者。然而,为了实现团队间的高效协作,需要将本地的开发成果推送至远程共享仓库,以便其他成员能够同步更新。本文将以GitHub为例,详细介绍如何通过设置和使用远程仓库,实现多人协作开发的最佳实践。 ... [详细]
  • 揭秘腾讯云CynosDB计算层设计优化背后的不为人知的故事与技术细节
    揭秘腾讯云CynosDB计算层设计优化背后的不为人知的故事与技术细节 ... [详细]
  • 在前一篇文章《Hadoop》系列之“踽踽独行”(二)中,我们详细探讨了云计算的核心概念。本章将重点转向物联网技术,全面解析其基本原理、应用场景及未来发展前景。通过深入分析物联网的架构和技术栈,我们将揭示其在智能城市、工业自动化和智能家居等领域的广泛应用潜力。此外,还将讨论物联网面临的挑战,如数据安全和隐私保护等问题,并展望其在未来技术融合中的重要角色。 ... [详细]
  • 在C语言中,定义一个包含学号、姓名和年龄的学生信息结构体,并遵循严格的命名规范。首先,初始化结构体变量的所有成员为默认值,然后将其学号设为88,姓名设为“liming”,年龄设为25。最后,在控制台上输出该结构体变量的详细信息,以验证数据的正确性。例如,使用 `typedef struct Student` 定义结构体类型。 ... [详细]
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • 文件系统管理与设计涉及众多内容,课堂讲解较为简略。本章主要介绍了以下几点:1. 基本概念 - 文件系统:一种用于实现数据持久性存储的系统抽象。 - 文件:文件系统中的基本存储单元,包含一组相关数据。文件系统通过文件组织和管理数据,提供高效的数据访问和管理机制。此外,还涵盖了文件的属性、类型和操作方法。 ... [详细]
  • Spring Security 认证模块的项目构建与初始化
    本文详细介绍了如何构建和初始化Spring Security认证模块的项目。首先,通过创建一个分布式Maven聚合工程,该工程包含四个模块,分别为core、browser(用于演示)、app等,以构成完整的SeehopeSecurity项目。在项目构建过程中,还涉及日志生成机制,确保能够输出关键信息,便于调试和监控。 ... [详细]
author-avatar
Edison小磊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有