暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 保证对特定用户组中所有用户会话使用的资源总量的限制

ASKTOM 2020-03-18
194

问题描述

我们是否可以保证特定用户组中所有用户会话使用的资源总量限制,以便它们的总使用量不超过CPU的10%,IO的10%,内存的10%?

我们能否确保用户组根据不同的工作负载遵循不同的资源限制计划?例如,将总CPU和总PGA内存的90% 90% 到处理组,并在高峰工作时间将其10% 到报告组,并在非高峰工作时间将其60% 到处理组和40% 到报告组?

如果可能的话,那么如何实现?是通过交换组选项吗?如果资源可从其他组中获得 (空闲且未使用),那么无论指定的限制如何,它们都会自动分配给需要的组?

谢谢,
拉杰尼什

专家解答

是的。您可以在消费者组中切换会话。例如,我有一个最近的客户,他想确保临时客户不会淹没他们的系统

因此,当用户通过应用程序提交adhoc查询时,我们做了:

dbms_session.switch_current_consumer_group('ADHOC',: x,true);

将其放入一个降低CPU资源的组中,包括60秒的自动切换CANCEL_SQL指令,以避免查询失控。

当查询完成并返回结果时,我们做了

dbms_session.switch_current_consumer_group('正常',: x,真);

把它们弹回到正常的使用模式。

您可以考虑的另一件事是自动切换功能,当会话超过某个限制时,您会自动将它们 (通常转换为较低优先级的组) 以减少它们对系统的影响。

"If resources are available from other group (idle and not being used)",是的。资源管理器通常不会人为地限制服务器上的资源消耗。它旨在在系统处于负载状态时将资源适当地分配给最需要的资源。

这是人们经常说 “资源管理器不工作-我的低优先级会话正在使用100%” 的常见原因。如果没有使用系统的高优先级会话,则低优先级会话将使用100%。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论