Image of Cortney & Jeremy

How To Make Your Routers Reload Faster

by Jeremy L. Gaddis on July 22, 2011 · 9 comments

in Networking

Stopwatch

When doing labs, one thing that really annoyed me was how long it took some of my routers to reload. After doing a lab exercise, I would always erase the configuration and reload in order to start from a “blank” configuration.

I just recently discovered a way to speed up this process. It’s pretty basic and, since the feature has been around since 12.3(2)T, I’m not sure how I hadn’t heard about it. Since I hadn’t, I will assume somebody else out there hasn’t either, so here’s the details.

NOTE: Be sure to check Feature Navigator to see if it’s available on your hardware. It’s available on the gear that most of us would have in our home/test labs, with the exception of 2600XMs and 3640s (it IS available on the 2650XM and 2651XM, though).

Warm Reload

Cisco describes the feature as follows:

The Warm Reload feature allows users to reload their routers without reading images from storage. That is, the Cisco IOS image reboots without ROM monitor mode (ROMMON) intervention by restoring the read-write data from a previously saved copy in the RAM and by starting execution without either copying the image from flash to RAM or self-decompression of the image. Thus, the overall availability of your system improves because the time to reboot your router is significantly reduced.

Quicker Recovery From Software Crashes

If it hasn’t happened to you yet, it will. You’ll encounter some software bug in IOS that forces a crash. These never happen at a good time and it often seems like it takes forever for a router to reload when this happens. Alerts start going off, your phone starts ringing, and users begin complaining. There’s nothing you can do except wait.

The warm reload feature also allows the router to recover from these crashes much quicker.

Enabling Warm Reload

Enabling Warm Reload is easy as pie:

Router# configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)# warm-reboot
Router(config)# end
Router#

Note that you’ll need to perform a cold reboot for it to take effect, though.

Tweaking Warm Reload

By default, IOS will force a cold reboot after five warm reboots due to crashes. Also, if a crash happens before the router has been up less than five minutes, well, it’s doing to do a cold reboot. These values can be changed:

Router# configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)# warm-reboot count 10 uptime 7
Router(config)# end
Router#

Here we’ve configured the router to allow 10 warm reboots and at least seven minutes in between warm reboots due to those crashes.

Verifying Warm Reload Configuration

To view the configuration, use show warm-reboot:

Router# show warm-reboot

Warm Reboot is enabled
Maximum warm reboot count is 10
Uptime after which warm reboot is safe in case of a crash is 7 (min)

Statistics:

0 warm reboots due to crashes and 2 warm reboots due to requests have
taken place since the last cold reboot
2844 KB taken up by warm reboot storage

Performing A Warm Reboot

To perform a warm reboot, you simple use the keyword “warm” when issuing the reload command:

Router# reload warm

If you forget the “warm” keyword, a normal (a.k.a. cold, a.k.a. sloooow) reboot will occur.

Measuring Reload Time

75% of the way through writing this post, I discovered that Ivan (@ioshints) also wrote an article on this exact subject (beating me to it by over four years!). In Ivan’s testing, the time to reload a 2800 decreased from 135 seconds to 54 seconds after enabling the warm reload feature.

What kind of speed-ups are you seeing after enabling warm reload?

{ 9 comments… read them below or add one }

Leave a Comment

Previous post:

Next post: