本节书摘来自华章计算机《Oracle数据库性能优化方法论和最佳实践》一书中的第3章,第3.1节,作者:柳遵梁 潘敏君 应以峰著,更多章节内容可以访问云栖社区“华章计算机”公众号查看
第3章 流程分析之数据库登录流程
3.1 数据库登录导致业务系统性能恶化案例分享
某运营商发现,从早上就开始接到大量的营账业务系统性能恶化的投诉,主要集中在通过账务系统访问CRM系统的业务处理中。手动发起连接到CRM系统的登录响应速度也非常慢,从CRM系统的listener.log以及session跟踪可以发现每秒有100多个listener发起连接,绝大部分来自于账户系统的database link。通过业务变化确认,相比于昨天,今天的业务增加了关闭database link的操作,用于降低CRM系统的session数量。
经过现场确认,在数据库服务器本机中执行的tnsping操作每次达到1000ms以上,而且数据库的listener CPU占用率比较高。应急处理办法为:通过增加listener数量以均衡负载,提高listener的总处理能力,应对白天的业务需求。在业务周期结束后,我们对CRM系统的listener进行了人工模拟的数据库登录并发压力测试,在每秒并发数量达到100以上之后,tnsping的listener响应时间迅速增加到1000ms以上,验证了listener处理能力不足。经过权衡,开发保留了频繁交互的CRM系统和账户之间的database link的可持续会话,及时关闭来自其他不太频繁的database link。
从以上案例描述中,我们发现以下几点。
listener的并发处理能力是有限的,而且并不是很高。
数据库登录的整个流程即使正常运行,所需要的时间也经常达到180ms以上。
关闭database link使得database link访问变成每次访问都需要连接数据库,从而使数据库登录的响应时间纳入了业务响应的时间范畴。