【分享与探讨八】关于日志缓冲区落盘的性能问题

【问题】对于日志缓冲区的数据落盘的方式,11g增加一种新的方式就是polling的方式,传统方式是post/wait方式。oracle底层自动判断何时用何种方法来完成lgwr进程的写任务。我们要不要相信oracle底层的这种调和能力呢?

【分析】对于post/wait方式来讲,客户端做了commit之后,需要等待事件完成。oracle一旦完成会通知用户进程,用户进程立刻感知。但是这一通知post,会耗费大量CPU资源。polling是oracle前台进程启动检查任务,自动检查后台lgwr写入情况,耗费CPU资源比较少,但是用户进程并不一定能立刻感知。所以两种方法各有千秋。但是关键是后台实现两种方法切换的时候要耗费系统性能,尤其在繁忙的时候频繁切换的话反而会导致数据库性能下降。awr出现大量‘Log file sync’。详见下面的bug:
Bug 13707904 - LGWR sometimes uses polling, sometimes post/wait (Doc ID 13707904.8)

【建议】关掉切换,采用传统方式。
alter system set "_use_adaptive_log_file_sync"='FALSE' scope=spfile sid='*';

参与2

1同行回答

haizdlhaizdl  技术经理 , 大连
【问题】对于日志缓冲区的数据落盘的方式,11g增加一种新的方式就是polling的方式,传统方式是post/wait方式。oracle底层自动判断何时用何种方法来完成lgwr进程的写任务。我们要不要相信oracle底层的这种调和能力呢?【分析】对于post/wait方式来讲,客户端做了commit之后,需要等...显示全部

【问题】对于日志缓冲区的数据落盘的方式,11g增加一种新的方式就是polling的方式,传统方式是post/wait方式。oracle底层自动判断何时用何种方法来完成lgwr进程的写任务。我们要不要相信oracle底层的这种调和能力呢?

【分析】对于post/wait方式来讲,客户端做了commit之后,需要等待事件完成。oracle一旦完成会通知用户进程,用户进程立刻感知。但是这一通知post,会耗费大量CPU资源。polling是oracle前台进程启动检查任务,自动检查后台lgwr写入情况,耗费CPU资源比较少,但是用户进程并不一定能立刻感知。所以两种方法各有千秋。但是关键是后台实现两种方法切换的时候要耗费系统性能,尤其在繁忙的时候频繁切换的话反而会导致数据库性能下降。awr出现大量‘Log file sync’。详见下面的bug:
Bug 13707904 - LGWR sometimes uses polling, sometimes post/wait (Doc ID 13707904.8)

【建议】关掉切换,采用传统方式。
alter system set "_use_adaptive_log_file_sync"='FALSE' scope=spfile sid='*';

收起
银行 · 2017-05-09
浏览4879

提问者

haizdl
haizdl101634
技术经理大连
擅长领域: 灾备存储服务器

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-05-09
  • 关注会员:1 人
  • 问题浏览:7218
  • 最近回答:2017-05-09
  • X社区推广