04-18-2013 04:01 AM
Customer has asked if SCH will slow the device or increase CPU utilisation. Do we have any information that shows the impact, if any, to the operating performance of a device when SCH in enabled.
Tim
04-18-2013 11:51 AM
I don't think we have anything specifically that shows the impact of configuring SCH on a device. Depending on the OS that runs on the device there may be controls in place to limit the impact built into the support for that OS. For example, in NX-OS there is a duplicate message throttling mechanism that will throttle the number of duplicate messages. This not only helps limit the impact on the device itself but also on the SCH backend. This throttling mechanism can be disabled though:
Search for "Disabling Duplicate Message Throttle." I believe the default is to have it enabled.
Mike
Edit: Keep in mind that depending on how SCH is impelemented in the OS, the messages may be generated by the OS already and it is just a matter of sending them out if SCH is enabled. So the only additional overhead is just to send the e-mail or https message. All the work to generate the message may already be happening even if SCH is not configured.
Message was edited by: Michael Timm
04-18-2013 12:17 PM
I don't have hard numbers on CPU usage or memory usage.
But let's begin with the understanding that SCH was designed not to impact the normal functioning of the device. This includes rate-limiting the messages from the device and making sure that the callhome code sleeps between each command it is collecting for the message and has multiple breakpoints to allow other processes to assume control of the CPU.
Second, Callhome on the device typically sleeps until it is informed that it is needed. Essentially it sets an event flag and when the event occurs, the SCH process is triggered. So when no messages need to be sent, the process sleeps.
Also, most devices today forward data via hardware with the CPU simply updating the hardware forwarding table. So we are talking about how much does SCH affect the control plane - not the data plane (except on router platforms using CEF in software).
When an IOS device sends in a message, it has this output
router#call-home send alert-group inventory profile CiscoTAC-1
Sending inventory info call-home message ...
Please wait. This may take some time ...
The reason it says it might take some time is because it doesn't want to overwhelm the supervisor CPU or use it continuously.
When the Nexus sends a message, it does not give the same output
Nexus7000# callhome test inventory
trying to send test callhome inventory message
successfully sent test callhome inventory message
But since the Nexus forwarding is hardware based, it never affects data forwarding.
For rate-limiting SCH messages in IOS, we have the command
Router(cfg-call-home)# rate-limit 40
which rate limits from 1 to 60 messages per minute without regard to alert type. The default value is 20 messages per minute
Rate-limit: 20 message(s) per minute
For the Nexus 7000, we have the command
duplicate-message throttle
which rate limits messages according to each alert type. The number of messages for each alert group is set in software and can't be changed.
30 messages for *each* alert type can be sent every 2 hours from the time the first message is sent. Essentially it is a list of timers, one for each alert type, each timer has a counter initially set to 30. As soon as an alert type is sent, the countdown timer is set to 2 hours and the associated counter is decremented. 29 messages of the same alert type will be created and sent before the nexus 7000 will block anymore message of that alert type while the timer is still running. Once the timer has expired, it starts over and the first message sets the 2 hour timer again and decrements the counter that is reset to 30.
Most of the time very few messages are sent to SCH since it either goes bad and stays bad or it is a periodic message that is sent only once.
Finally, If the callhome message can't be sent at the time it is generated, the device will periodically try to resend the message stored in memory but it will sleep between retries.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide