Cisco Embedded Resource Manager (ERM) MIB.
The Embedded Resource Manager (ERM) is a framework which
helps in effectively managing resources such as cpu, memory,
buffers, etc. There are two important scenarios where the ERM
framework would be useful:
1. Resource Depletion
- how to gracefully handle a situation where the system
runs out of a finite resource.
2. Resource Separation
- how to share resources fairly between different entities
in the system such that activity of one entity does not
adversely affect others.
The ERM framework has the following entities:
1. Resource Owner
Resource Owner (RO) provides resources to one or more
resource users. Example: cpu, memory and buffer.
The resource owner doesn't mean the physical resource.
For example, 'memory' resource owner would actually
mean the memory manager rather than the physical memory.
2. Resource User Type
Resource User Type (RUT) is a template which defines
a set of resource owners from where resources can be
obtained by any of the resource users instantiated from
the resource user type.
3. Resource User
Resource User (RU) is a logical entity or application
that consumes one or more resources. Resource users are
instantiated from the Resource User Type. Resource user
can also be called as 'instance of a resource user type'.
A resource user registers with a resource user type and
thus it is indirectly registered with all resource owners
defined by the resource user type.
4. Resource User Group
Resource User Group (RG) is a logical entity which contains
group of resource users. It would hence forth be referred
as Resource Group. In some cases (for example, multiple
users with same name), user may want to set threshold value
for sum of resource utilized by a group of resource users.
In such case, those resource users can be grouped/added
under a resource group. Then, user can apply a resource
policy to the resource group.
5. Resource Usage Monitor
This is also called as Resource Monitor (RM). The resource
monitor is a logical entity or application that monitors
resource owner, resource user, resource policy and resource
owner <-> resource user relationship. When any applied
resource policy is violated, all resource monitors
monitoring the resource policy will be notified and the
resource monitor can take appropriate action based on the
resource owner and resource user attributes.
The ERM framework allows three types of thresholding:
1) System Global Thresholding
When total utilization of a resource exceeds the applied
global rising threshold value, all resource users which
consume resources from the concerned resource owner are
notified to take appropriate action. The notification
order is determined by priority of the resource users.
Resource users with a lower priority are notified first,
so as to enable lower priority resource users to reduce its
resource consumption prior to any higher priority resource
users. This order prevents higher priority resource
users to start freeing up their resource, thereby not
affecting their performance.
2) User Local Thresholding
When utilization of a resource by a specific resource user
exceeds the applied user local rising threshold value,
a notification is sent *only* to the concerned resource
user. The user local thresholding method can be used to
prevent a resource user from monopolizing any available
resources.
3) Per User Global Thresholding
When total utilization of a resource exceeds the applied
per user global rising threshold value, a notification
is sent *only* to the concerned resource user. Each
resource user can have its own per user global threshold
value (per resource owner). Per User Global Thresholding
is similar to System Global Thresholding, except that
notification for Per User Global Threshold violation is
sent only to the corresponding resource user. The main
purpose of the Per User Global Thresholding is that a
resource user can take preventive actions based on the
global resource utilization of a resource.
The Embedded Resource Manager (ERM) framework allows applying
and monitoring threshold limit for usage of resources such as
cpu, memory, buffer, etc. Exceeding any applied rising
threshold value will trigger an 'up' notification to relevant
resource user(s) and resource monitor(s) based on the type
of violated resource policy. After the 'up' notification,
if the utilization goes below the falling threshold value,
a 'down' notification will be sent to the resource user(s)
and resource monitor(s). The 'up' and 'down' notifications
do not mean the SNMP notifications/traps. Rising threshold
value and falling threshold value should be different to
avoid flapping.
The ERM framework enables configuration of resource policy
in which rising/falling threshold values for a set of
resource owners can be specified. There are two types of
resource policies which can be configured.
1) Global Resource Policy
There can be only one global resource policy applied
in the system at any point of time, though multiple
global resource policies can be configured. On violation
of a applied global resource policy, all resource users
(which consume resources from the concerned resource owner)
and resource monitors (which watch the concerned
resource owner) will be notified to take appropriate
action.
2) Local Resource Policy
The local resource policy is configured for a specific
resource user type. This policy can be applied for a
resource user (or group) of the same resource user type.
A local resource policy can be applied for more than one
resource users (or groups). Both user local thresholding
and per user global thresholding can be configured under
a local resource policy. On violation of any local resource
policy, only those resource users on which the violated
resource policy was applied, will be notified in order to
take appropriate action.
Whenever a resource is consumed, current utilization of the
resource will be compared against the applied rising
threshold value. The ERM framework provides a mechanism
to send notifications to resource user(s) and resource
monitor(s) whenever resource utilization exceeds any applied
rising threshold value or falls below any applied falling
threshold value. In such situations, the resource user(s)
can take appropriate corrective action (for example, limiting
or avoiding resource consumption). Thus, the ERM framework
helps in preventing catastrophic system failures caused by
high levels of resource depletion. The ERM framework can be
extended to all kinds of resources (for example, incoming
control plane packets) that need to be managed.
The ERM MIB module facilitates the following operations:
1. Getting information about all the above mentioned
ERM entities available in a managed system.
2. Creating/modifying/removing a resource policy.
3. Creating/modifying/removing a threshold configuration
for a particular resource policy.
4. Creating/removing a resource group.
5. Adding/removing a resource user to/from a particular
resource group.
6. Applying global resource policy.
7. Applying local resource policy for a resource user or
resource group.