导致checkpoint进程耗用大量CPU的情况

资讯 驱动中国 若水 1,826 次阅读 0 条评论
分享 Q

Oracle数据库9i允许动态修改SGA的大小,但是,在实际的工作和学习中,经常有减少(resize/reduce) shared_pool_size不成功,反而导致checkpoint(CKPT) 进程耗用大量CPU的情况。

具体原因:

是由于在减少shared_pool_size时,Oracle会尝试清空一段shared_pool,然后把它release 出来,而有时候正好被选中的 shared_pool 有正在使用,无法release 的内容 , 于是CKPT 不断(循环,中间的Sleep/yield 很少)的去通知/检查 那些没有release的shared memory,从而造成占用大量CPU 。

正确的方法:

所以,要减少shared_pool_size ,一定要在很空闲/没什么连接的时候,另外,一次减少的size最好不要过大。

补救措施:

另外,有时候,我们下了减少shared_pool_size的命令,等待一阵,没有结果,于是尝试用CTRL+C中断操作,但是有可能并没有真正的中断掉操作,后台还在继续尝试减少shared_pool_size 。从而使CKPT 消耗大量CPU。

此时,我们需要找出发出减少shared_pool_size的命令的session ,并kill掉这个session。

情况 大量 进程 导致 减少 shared_pool_siz
版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友