Forum Stats

  • 3,874,970 Users
  • 2,266,788 Discussions
  • 7,912,036 Comments

Discussions

DB resource manager 12.2

User_RXNCF
User_RXNCF Member Posts: 51 Red Ribbon
edited Sep 4, 2017 11:33AM in Multitenant

hello guru`s,

Oracle 12.2 database

I read Oracle DBRM documents, but I still has some confusion. DBRM only controls CPU and parallel servers or it also can control memory, and IO. If it cannot control memory and IO what is the best way to control.

for MEMORY and IO , there are PDBs parameters released in Oracle 12.2 but I am looking a way is it included in DBRM.

  • shares : The proportion of the CDB resources available to the PDB.
  • utilization_limit : The percentage of the CDBs available CPU that is available to the PDB.
  • parallel_server_limit : The percentage of the CDBs available parallel servers (PARALLEL_SERVERS_TARGET initialization parameter) that are available to the PDB.

Thanks

Geoff Grandstaff-OracleFranck Pachot

Best Answer

  • FRivasF-Oracle
    FRivasF-Oracle Member Posts: 11 Employee
    edited Sep 4, 2017 3:24AM Answer ✓

    Hi 3435889,

    "implementing and having two types again I feel maintenance burden for DBA."->  Yes, I can understand that.

    There are some good reasons for the memory and IO resources to be out of the CDB resource manager. Regarding memory, as you know it is not always possible to shrink a SGA memory buffer anytime. Depending on the load, an instance will allow you to shrink the buffer cache to give it to the shared pool (for instance), or not. So you can't define a extrictly load-quantitative-based DBRM rule for memory; you might want to transfer x Mb from this PDB to the other, but it might be in use and DBRM will be unable to honor your rule. You can do it proactively indeed, before it's used. Your can define minimums as a safety net. But afterwards, you depend on the quantitative and qualitative kind of load.

    IO is also not an easy resource to manage, specially if you don't own it. In the Oracle Engineered Systems we do know the whole IO capacity of the hardware, and we do have 100% control over it. So it is easy to program the cells software in order to talk with the database parties and distribute those IO capacities based on a priority. But we can't control it's behavior if you use a third party storage. We can't also make the PDBs talk each other to distribute the load in any particular way because we also don't know the absolute storage capacities and we might be crippling it down. And we already do have an idea (system statistics) of it, but third party storage performance is really dynamic and changes depending on many factors. On the other hand we can limit the PDB IO to a fixed amount, based on your own DBA knowledge of the environment.

    Regards,

    Franck Pachot
«1

Answers

  • Unknown
    edited Aug 23, 2017 8:07PM
    I read Oracle DBRM documents, but I still has some confusion. DBRM only controls CPU and parallel servers or it also can control memory, and IO.

    Please post the links to the documents you have read.

    I don't have specific experience in this area but you might want to review this Oracle-Base article.

    It suggests that you can use the DBMS_RESOURCE_MANAGER package to do what you ask about. Is that package what you are referring to as 'resourced manager'?

    https://oracle-base.com/articles/12c/multitenant-resource-manager-pdb-performance-profiles-12cr2

    Create CDB Resource Plan with PDB Performance Profiles

      The process for creating a CDB resource plan using PDB performance profiles is very similar to using CDB plan directives. Instead of targeting individual PDBs, the profiles define types of PDBs that have the same resource usage profiles. The profile directives allocate shares, which define the proportion of the CDB resources available to the PDB, and specific utilization percentages, that give a finer level of control. PDB performance profiles are managed using the DBMS_RESOURCE_MANAGER package.
  • FRivasF-Oracle
    FRivasF-Oracle Member Posts: 11 Employee
    edited Aug 24, 2017 3:17AM

    Hi,

    There is no memory resource management for inter-PDB, but as you noticed, in 12.2 you can define memory minimums for each PDB. So you can prevent another PDB to drain memory from your PDB at night (erasing all data from the buffer cache, etc). Regarding IO, you can indeed use IORM in case of engineered systems like Exadata. IORM is able to distribute IO capacities between different PDBs. There is still no inter-PDB mechanism to control IO for non-eng systems.

    Just keep in mind that inter-PDB resource management is different than intra-PDB resource management, where you will have more capacities. Both are independent and compatible.

    Regards

  • User_RXNCF
    User_RXNCF Member Posts: 51 Red Ribbon
    edited Aug 24, 2017 11:52AM

    ya that's what it seems from the document which I wanted to clarify. but how much worth is it to create DBRM plans just for CPU, if we have to use PDB parameters for memory and IO.

    if we using PDB Parameters for memory, IO , we can better use cpu_count PDB Parameter for CPU caging I believe, let me know your inputs.

    Thanks

  • User_RXNCF
    User_RXNCF Member Posts: 51 Red Ribbon
    edited Aug 24, 2017 2:46PM

    rp0428,

    I know how to create and manager, I wanted to know whether this plan is just form CPU, Parallel server limit, whether these plans can manager memory and IO.

    Thanks

  • Franck Pachot
    Franck Pachot Member Posts: 912 Bronze Trophy
    edited Aug 24, 2017 4:24PM

    Hi,

    >> we can better use cpu_count PDB Parameter for CPU caging I believe

    One thing is that parameters are absolute values not relative to total resources. Resource manager is percentage of total (shares are percentage of total shares). This is important for DBaaS where you create and drop databases. It is more a 'cloud' thing: shares guarantee a minimum and utilization_limit throttle to a maximum

    >> whether these plans can manager memory and IO

    These plans are for CPU and Parallel servers. Also for IO in Exadata only

    Regards,

    Franck.

  • Unknown
    edited Aug 24, 2017 5:02PM

    I ask you at least two questions in my reply and you totally ignore both of them.

    We can't effectively help you if you won't do your part.

  • User_RXNCF
    User_RXNCF Member Posts: 51 Red Ribbon
    edited Aug 24, 2017 5:14PM

    rp,

    I do not get what other info you need.

    I know about performance profiles, which I am not worried.. again perf profiles has same thing utilization_limit and parallel_limit.  which is same thing. and its a goed feature..I think you did not understandvb my question.

    Thanks.

  • Unknown
    edited Aug 24, 2017 9:20PM
    I do not get what other info you need.

    You didn't see these in my reply?

    Please post the links to the documents you have read.It suggests that you can use the DBMS_RESOURCE_MANAGER package to do what you ask about. Is that package what you are referring to as 'resourced manager'?

    This is what you first posted

    I read Oracle DBRM documents

    We can't read or comment on those docs you say you read unless you provide the links.

    And you used the term 'DB Resource Manager' and my question above is asking you to explain what YOU mean by that term.

    Are you referring to the DBMS_RESOURCE_MANAGER package or to something else?

    We're trying to help you but you are making it pretty hard to do that.

  • User_RXNCF
    User_RXNCF Member Posts: 51 Red Ribbon
    edited Aug 25, 2017 12:03PM
  • Unknown
    edited Aug 25, 2017 12:40PM

    Ok - thanks - so that is the same doc and package I ask about.

    This is what you first ask

    DBRM only controls CPU and parallel servers or it also can control memory, and IO.

    And this is what the doc says using the link you just provided

    46.1.4 PDB Resource Plans

    A CDB resource plan determines the amount of resources allocated to each PDB. A PDB resource plan determines how the resources allocated to a specific PDB are allocated to consumer groups within that PDB.A PDB resource plan is similar to a resource plan for a non-CDB. Specifically, a PDB resource plan allocates resource among the consumer groups within a PDB. You can use a PDB resource plan to allocate the resources described in "The Types of Resources Managed by the Resource Manager".

    If you take that last link mentioned above the doc sections discusses ALL of the things you can control and that includes IO and memory.

    Program Global Area (PGA)
    To manage PGA resources, Resource Manager can limit the amount of PGA memory that can be allocated to each session in a particular consumer group.Runaway Queries
    Runaway sessions and calls can adversely impact overall performance if they are not managed properly. Resource Manager can take action when a session or call consumes more than a specified amount of CPU, physical I/O, logical I/O, or elapsed time. Resource Manager can either switch the session or call to a consumer group that is allocated a small amount of CPU or terminate the session or call.

    The first bullet above discusses managing PGA memory.

    The second bullet discusses managing physical and logical I/O.

    To me that doc section appears to address/answer the question you ask about what can be managed using the Resource Manager.

    If it doesn't then please be more explicit, and provide an example, of what it is you are wanting to do.

This discussion has been closed.