My Life My Dream!

守信 求实 好学 力行
随笔 - 193, 文章 - 0, 评论 - 55, 阅读 - 34万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  性能诊断

性能问题的本质就是请求响应时间超出用户的预期。
摘要:问题背景: 系统在月底高峰期出现严重的整体性能问题,经分析应用的线程dump,发现大量线程在等待数据库请求返回或等待数据库连接,而从数据库层面跟踪,存在大量等待事件为磁盘IO的会话,通过windows资源管理器查看,发现磁盘IO出现明显的瓶颈(平均响应时间超长,队列严重)。 从分析结果和现象来说,问 阅读全文

posted @ 2024-08-07 16:09 召冠 阅读(274) 评论(0) 推荐(0) 编辑

摘要:-- 查询活跃会话 SELECT * FROM V$SESSIONS WHERE STATE='ACTIVE'; --查询已执行超过 2 秒的活动 SQL。 SELECT* FROM ( SELECT SESS_ID,SQL_TEXT,DATEDIFF(SS,LAST_RECV_TIME,SYSDA 阅读全文

posted @ 2023-06-15 20:48 召冠 阅读(530) 评论(0) 推荐(0) 编辑

摘要:PostgreSQL select * from pg_settings; select version(), txid_current(), pg_backend_pid(), current_user, current_schema, current_timestamp; -- 查询所有会话信息 阅读全文

posted @ 2022-12-06 14:42 召冠 阅读(501) 评论(0) 推荐(0) 编辑

摘要:/* MySQL */ select * from information_schema.PROCESSLIST p ; select * from information_schema.INNODB_TRX it ; --未提交的事务 select * from performance_schem 阅读全文

posted @ 2021-12-31 14:16 召冠 阅读(413) 评论(0) 推荐(0) 编辑

摘要:JProfiler是分析java单点性能和内存问题的利器,查阅跟踪远程jvm的资料时,网上充斥着在服务端一通操作配置的内容。其实直接通过SSH连接方式,可以直接监控,初次使用时需要从外网下载一些agent libraries并自动上传服务器,联网下载后直接配置跟踪即可,在此简单记录备忘。 阅读全文

posted @ 2021-12-31 11:21 召冠 阅读(1104) 评论(0) 推荐(0) 编辑

摘要:问题现象:Fiddler跟踪web请求响应时间11秒之多,但从该功能的程序日志记录查看,执行时间只有不到1秒,调阅对应的iis请求响应日志,iis处理时间确实是11秒,抓取dump分析,竟然没有该功能的线程堆栈,很奇怪。。。问题分析:多次重现问题并抓取dump分析发现,每次都有一个发生邮件的异步线程 阅读全文

posted @ 2021-01-12 14:44 召冠 阅读(357) 评论(0) 推荐(0) 编辑

摘要:这两个等待事件其实很少出现在top5列表中,一般都没什么印象,在此整理记录以便以后查阅。 常见的library cache lock产生的原因在《高级OWI与Oracle性能调查》这本书和下面这个文档中有一般性的描述: Troubleshooting Library Cache: Lock, Pin 阅读全文

posted @ 2018-03-31 10:45 召冠 阅读(5004) 评论(0) 推荐(0) 编辑

摘要:近一段时间多次发现因GC问题造成系统性能问题(应用服务间歇性响应缓慢、应用服务器CPU占用较高等),在此总结一下: 1、代码中直接调用GC.Collect() 2、字符串等操作频繁的内存申请 3、频繁的LoadAssembly反射 场景一:直接调用GC.Collect() 场景二:字符串连接操作 场 阅读全文

posted @ 2018-01-18 20:06 召冠 阅读(788) 评论(0) 推荐(0) 编辑

摘要:近期进行压力测试时发现,平均响应时间较上一个版本延长10%以上、应用服务器CPU超过90%,这很不科学。。。随机抓取两个dump文件,查看发现存在不少Oracle ODP.NET提交事务或关闭连接的堆栈,感觉上来说这不是很正常,此类操作很慢吗?很消耗CPU?查阅当前的Oracle客户端为最新的12.2.0.1(Oracle.DataAccess.dll版本:4.122.1.0),而产品性能测试环境... 阅读全文

posted @ 2018-01-04 22:42 召冠 阅读(1150) 评论(0) 推荐(0) 编辑

摘要:问题现象: 项目反馈系统反应非常缓慢,数据库服务器CPU接近100%! 分析过程: 收到反馈的CPU消耗较高如下SQL后,感觉很奇怪:这是产品中一个很简单的日志插入SQL,项目的规模也不是很大,怎么会产生CPU瓶颈呢? 联系现场部署DBSQLMonitor监控所有会话的状态和等待事件: http:/ 阅读全文

posted @ 2018-01-02 11:50 召冠 阅读(3928) 评论(0) 推荐(0) 编辑

摘要:月底高峰期,对一个典型项目抽查分析时,发现了一个超级慢、全表扫描的SQL,语句很简单,AWR中赫然在列,在我统计的截止时间内还没有结束。。。 使用v$active_session_history进一步确认:该SQL执行了接近3个小时!获取SQL的完整信息,发现该语句并不复杂,但看到 IS NULL 似乎就明白了问题所在,索引失效、全表扫描。。。虽然该表上已经创建有 period和ye... 阅读全文

posted @ 2017-06-30 20:20 召冠 阅读(1660) 评论(0) 推荐(0) 编辑

摘要:1、关于ODP.NET的Windows计数器问题 使用微软的缺省驱动时,可以通过windows性能监视器很方便的监控数据库连接数,选择.NET Data Provider for Oracle/Sqlserver中的NumberOfPooledConnections即可。但是微软早就放弃了对Orac 阅读全文

posted @ 2017-02-23 15:16 召冠 阅读(831) 评论(0) 推荐(0) 编辑

摘要:请重视并正确配置sqlserver实例及数据库的参数,一般化的配置推荐如下: 1、数据和日志文件的初始大小分别设置为10G和2G,均设置为按照固定64/128M大小增长,不限制最大值; 2、sever实例设置最大并行度为1(最大不要超过4),或并行的开销阈值为10; 没有更改sqlserver的缺省 阅读全文

posted @ 2016-11-19 09:43 召冠 阅读(982) 评论(0) 推荐(0) 编辑

摘要:问题描述: 项目反馈某功能响应时间很长,高峰期时系统整体响应很慢。。。 获取相应的AWR,问题确实比较严重,latch: cache buffers chains等待,因为这些会话SQL执行时间太长,并发情况下数据库连接数迅速增长,从应用服务器的性能计数器上确实可以看到数据库连接激增的情况。 原因分 阅读全文

posted @ 2016-09-08 09:55 召冠 阅读(654) 评论(0) 推荐(0) 编辑

摘要:问题描述: 项目反馈数据库服务器的CPU持续100%的情况,跟踪发现很多活动会话的等待事件是“asynch descriptor resize”,并且这些会话一直处于Active状态,而这些会话执行的查询并不复杂,感觉很是奇怪。 原因分析: 查阅了一下资料,对应Oracle的Bug 9829397, 阅读全文

posted @ 2016-05-18 21:50 召冠 阅读(1457) 评论(0) 推荐(0) 编辑

摘要:DB SQL Monitor v1.7.6 Designed by Wang Zhaoguan 工具说明 ------------------------------------------------------------------------------------ 从会话状态和等待事件的角度,了解数据库的运行情况,供DBA和开发人员分析优化... 阅读全文

posted @ 2016-03-24 19:29 召冠 阅读(4648) 评论(0) 推荐(0) 编辑

摘要:背景描述: 最近一个项目的系统管理员和业务运维人员分别反馈问题: 1、应用系统每个月会有一两次宕机,需要管理员手工重启IIS; 2、财务模块一个功能经常报网络错误“网络异常,请检查网络连接”“Unable to read data from the transport connection: 远程主 阅读全文

posted @ 2016-02-01 11:06 召冠 阅读(3542) 评论(2) 推荐(2) 编辑

摘要:背景说明: 今天查阅书籍时,偶然间发现“在对某个索引行执行删除操作时,只是为该行增加了一个删除标记,这个索引行并不会释放它的存储空间,Insert产生的新的索引行也不能被插入到该位置。索引列的修改过程其实是将对应的列值删除,然后再插入新的列值(与数据行本身的修改是不一致的,这也正是我们尽量不使用修改 阅读全文

posted @ 2016-01-29 18:00 召冠 阅读(8278) 评论(0) 推荐(0) 编辑

摘要:有时会考虑一件事情,如果在Oracle环境下出现了锁阻塞的情况,如何定位到SQL源头(通过session、lock、transaction等视图仅能定位到会话)?或许有人会想有没有可能通过AWR相关的数据库性能历史视图找到有用的信息呢?答案是否定的,因为AWR仓库中的历史性能数据都是收集的有性能问题的会话、语句、活动,而最初加锁的那个update语句执行速度非常快,往往根本达不到AWR收集的阀值,不被Oracle注意到。而Oracle注意到的都是被“它”给阻塞的那些会话。 是不是没方法,找到那个始作俑者?有的,只不过比较麻烦,有一个地方是始终会忠实记录DML活动-----日志(打开Oracle的补充日志) 阅读全文

posted @ 2016-01-18 17:48 召冠 阅读(2542) 评论(0) 推荐(1) 编辑

摘要:跟踪文件由各个后台进程生成,警报日志中记录关键操作包括: ·所有启动和关闭命令,包括中间命令,如alter database mount ·实例的所有内部错误(ORA-600错误,只能报告给Oracle Support解决) ·任何检测到的数据文件块损坏情况 ·任何已... 阅读全文

posted @ 2016-01-13 17:36 召冠 阅读(2303) 评论(2) 推荐(1) 编辑

点击右上角即可分享
微信分享提示