On 1/30/2020 at 7:33 PM, Mikesk said:
Судя по ответу саппорта вот ваше исправление:
Web: ускорена работа при обращении к списку хостов (сообщил @biospb)
Скорее всего это другое исправление и оно связано с долгой загрузкой страницы списка хостов, а у нас была проблема опрос хостов встроенным коммутатором и это проявляясь другой проблемой.
On 2/4/2020 at 8:34 AM, Nick007 said:
Поддерживаю, 3.3.7 работает стабильно, ЦП не грузится больше ~50%
Вышла версия 3.3.8 предварительная! Discovery: исправлен опрос хостов по ARP. Мне кажется вот это как раз наше исправление, с этой версии точно проблема должна быть устранена.
Исправления:
- Исправлено поведение светодиода «Интернет»
- TSMB: исправлено переименование файлов для файловых систем, нечувствительных к регистру
- Discovery: исправлен опрос хостов по ARP
Edited by steken
В настоящее время многие люди пользуются роутерами для организации беспроводной сети в своих домах и офисах. Однако, иногда возникают проблемы с загрузкой процессора роутера, которая достигает 100 процентов. Это может привести к замедлению работы сети и проблемам с интернет-соединением. Но почему это происходит и есть ли способы справиться с этой проблемой?
Одной из причин, по которой загрузка процессора роутера достигает 100 процентов, является большое количество подключенных устройств. Если в вашей сети слишком много устройств, то роутер может не справляться с обработкой всех запросов. Кроме того, некоторые приложения или программы могут использовать большую часть пропускной способности сети, что также может привести к перегрузке процессора роутера.
Чтобы справиться с проблемой загрузки процессора роутера, можно предпринять несколько действий. Во-первых, стоит проверить количество подключенных устройств и, если возможно, уменьшить их количество. Также полезно проверить, какие приложения или программы используют наибольшую часть пропускной способности сети и, если возможно, ограничить их использование.
Еще одним способом борьбы с загрузкой процессора роутера является улучшение его производительности. Это можно сделать путем обновления прошивки роутера, установки дополнительных антенн или даже покупки более мощного и современного устройства. В некоторых случаях также полезно проверить настройки роутера и внести необходимые изменения.
В заключение, проблема загрузки процессора роутера, достигающей 100 процентов, может привести к проблемам с работой сети. Однако, существует несколько способов справиться с этой проблемой. Проверка количества подключенных устройств, ограничение использования пропускной способности сети, улучшение производительности роутера и проверка его настроек могут помочь снизить загрузку процессора роутера и улучшить работу сети в целом.
Содержание
- Загрузка процессора роутера: причины и решения
- Получение максимально быстрого доступа в Интернет
- Множество подключенных устройств в домашней сети
- Проблемы с программным обеспечением роутера
- Необходимость обновления аппаратного обеспечения
- Защита от DDoS-атак и вредоносного ПО
Загрузка процессора роутера: причины и решения
Причины загрузки процессора роутера могут быть различными. Одна из самых распространенных причин — это высокая нагрузка на сеть. Если количество клиентов, подключенных к роутеру, растет или если они используют много пропускной способности сети, процессор роутера может испытывать высокую загрузку.
Другой причиной может быть неэффективное использование ресурсов роутера. Некоторые приложения и службы, запущенные на роутере, могут использовать большое количество ресурсов процессора и памяти. Это может привести к перегрузке процессора и ухудшению производительности сети.
Существует несколько способов справиться с загрузкой процессора роутера. Во-первых, можно попробовать уменьшить нагрузку на сеть. Это можно сделать, например, ограничивая количество клиентов, подключенных к роутеру, или сократив использование пропускной способности сети.
Во-вторых, можно оптимизировать использование ресурсов на роутере. Это может включать отключение ненужных приложений или служб, которые потребляют много ресурсов процессора и памяти. Также стоит обновить прошивку роутера, которая может содержать исправления ошибок и улучшения производительности.
Наконец, можно рассмотреть возможность улучшения роутера. Это может включать установку более производительных моделей роутеров или использование технологий, таких как многопоточность, которые позволяют распределить нагрузку на несколько ядер процессора.
В заключение, загрузка процессора роутера до 100 процентов может привести к ухудшению производительности сети. Чтобы справиться с этой проблемой, следует ограничить нагрузку на сеть, оптимизировать использование ресурсов и, в некоторых случаях, обновить или улучшить роутер. Это поможет повысить производительность сети и обеспечить более гладкую работу соединения.
Получение максимально быстрого доступа в Интернет
- Выберите правильного провайдера. Первым шагом к улучшению скорости доступа в Интернет является выбор качественного провайдера. Исследуйте различные предложения на рынке, ознакомьтесь с отзывами и рейтингами, чтобы выбрать того, кто предоставляет наиболее стабильное и быстрое соединение.
- Обновите оборудование. Если ваш роутер или модем уже устарел, это может ограничивать возможности вашего соединения. Рассмотрите возможность приобретения нового оборудования, которое соответствует современным технологиям и требованиям. Это может оказаться ключевым фактором в улучшении скорости доступа.
- Усилите сигнал Wi-Fi. Низкий сигнал Wi-Fi может привести к замедлению скорости интернет-соединения. Разместите роутер в центре вашего дома или квартиры, чтобы улучшить область охвата сигнала. Также рассмотрите возможность использования усилителя сигнала или мощной Wi-Fi антенны.
- Уберите помехи. Ваше радиооборудование, микроволновая печь или другие электронные устройства могут создавать помехи для Wi-Fi сигнала, влияя на скорость доступа к Интернету. Постарайтесь установить роутер подальше от таких устройств и удалите все возможные преграды между роутером и вашим устройством.
- Оптимизируйте использование интернет-соединения. Закройте все ненужные программы и приложения, которые могут использовать ваше интернет-соединение. Это позволит освободить ресурсы и повысить скорость доступа. Также рассмотрите возможность использования сетевого кабеля вместо Wi-Fi при подключении к роутеру.
Следуя этим простым советам, вы сможете значительно увеличить скорость доступа к Интернету и наслаждаться высокой производительностью в онлайн-среде. Не забывайте также периодически проверять скорость вашего соединения и сравнивать с ожидаемыми результатами. Это позволит вам быть в курсе текущего состояния вашего интернет-подключения.
Множество подключенных устройств в домашней сети
Когда в домашней сети подключено много устройств, роутеру приходится обрабатывать большое количество запросов и передавать данные между устройствами. Это может привести к тому, что процессор роутера будет работать на полную мощность, что в свою очередь снизит производительность сети.
Для того чтобы справиться с этой проблемой, можно принять несколько мер:
- Оптимизировать сеть: Избавиться от ненужных устройств в сети и ограничить количество подключенных устройств.
- Разделить сеть: Если в сети подключено слишком много устройств, можно разделить сеть на несколько подсетей и использовать маршрутизацию между ними.
- Использовать сетевые коммутаторы: Подключение сетевых коммутаторов позволяет распределить нагрузку между разными устройствами и разгрузить процессор роутера.
- Обновить прошивку роутера: Некоторые производители выпускают обновления прошивки, которые могут улучшить производительность роутера и оптимизировать его работу.
Эти меры помогут снизить нагрузку на процессор роутера и улучшить производительность домашней сети, предотвращая достижение 100-процентной загрузки процессора.
Проблемы с программным обеспечением роутера
Процент загрузки процессора роутера может достигать 100% по нескольким причинам, связанным с программным обеспечением:
Проблема | Описание | Решение |
---|---|---|
1. Наличие вредоносного программного обеспечения | Некоторые роутеры становятся жертвами вредоносных атак, которые могут внедрить в систему вредоносное ПО. | Требуется провести сканирование роутера на наличие вредоносного ПО с помощью антивирусных программ и провести его удаление. |
2. Устаревшая версия прошивки роутера | Устаревшая версия прошивки роутера может быть неэффективной и неоптимизированной, что может привести к высокой загрузке процессора. | Рекомендуется обновить прошивку роутера до последней доступной версии, которая может содержать исправления ошибок и улучшения производительности. |
3. Недостаточные ресурсы роутера | Загрузка процессора роутера может достигать 100% из-за отсутствия достаточных ресурсов, чтобы обработать все активные соединения и запросы. | В данном случае рекомендуется либо использовать роутер с более мощным процессором, либо снизить нагрузку на роутер, ограничив количество активных соединений или использовать дополнительные роутеры как точки доступа. |
Если же проблема с загрузкой процессора роутера сохраняется, несмотря на предпринятые действия, рекомендуется обратиться к производителю роутера или специалисту по сетевым технологиям для дополнительной помощи.
Необходимость обновления аппаратного обеспечения
Когда загрузка процессора роутера достигает 100 процентов, это может быть признаком того, что ваше аппаратное обеспечение устарело и не может эффективно обрабатывать нагрузку. В таких случаях обновление аппаратного обеспечения может быть необходимо.
Аппаратное обеспечение роутера включает в себя процессор, оперативную память, а также другие компоненты, которые отвечают за обработку данных и выполнение различных функций роутера.
Обновление процессора роутера может значительно повысить его производительность, позволяя более эффективно обрабатывать сетевую нагрузку и уменьшить загрузку процессора до более приемлемого уровня. Кроме того, увеличение объема оперативной памяти также может сократить время обработки данных и повысить быстродействие роутера.
Однако перед тем как принять решение об обновлении аппаратного обеспечения, необходимо учесть некоторые факторы. Во-первых, стоимость обновления может быть значительной, поэтому необходимо оценить, насколько критична проблема высокой загрузки процессора для вашей сети и бизнеса в целом.
Во-вторых, необходимо проверить совместимость нового аппаратного обеспечения с вашим роутером и операционной системой. Не все компоненты могут быть совместимы, и неправильное обновление может привести к непредвиденным проблемам.
Наконец, имейте в виду, что обновление аппаратного обеспечения может быть сложным процессом, требующим определенных навыков и знаний. Если вы не уверены в своих способностях, лучше обратиться к специалисту или профессиональной команде, которые могут помочь вам с обновлением.
В целом, обновление аппаратного обеспечения может быть эффективным способом справиться с проблемой высокой загрузки процессора роутера. Однако перед принятием решения необходимо тщательно оценить все факторы и решить, насколько важно для вас повышение производительности роутера.
Защита от DDoS-атак и вредоносного ПО
Загрузка процессора роутера, достигающая 100 процентов, может указывать на наличие DDoS-атаки или вредоносного программного обеспечения (ПО). Для предотвращения таких проблем и обеспечения безопасности сети, необходимо принять некоторые меры защиты:
1. Построение надежной брандмауэра
Брандмауэры действуют как фильтры, блокируя нежелательный трафик и защищая сеть от несанкционированного доступа. Правильно настроенный брандмауэр может эффективно защищать роутер от DDoS-атак и вредоносного ПО. Конфигурация брандмауэра должна быть основана на последних обновлениях и рекомендациях по безопасности.
2. Установка антивирусного программного обеспечения
Установка антивирусного программного обеспечения на роутер может помочь обнаружить и предотвратить угрозы вроде вирусов, троянов и червей. Регулярные обновления антивирусных баз данных и сканирование роутера улучшат его защиту от вредоносного ПО.
3. Фильтрация трафика
Создание списка разрешенных и нежелательных IP-адресов поможет ограничить доступ к роутеру. Фильтрация трафика может быть настроена для блокировки известных DDoS-атак, а также для препятствия взлому сети через уязвимые порты.
4. Ограничение доступа в локальную сеть
Создание паролей для доступа к роутеру и ограничение доступа к административным настройкам поможет предотвратить несанкционированный доступ к устройству. Включение функции блокировки IP-адресов после нескольких неудачных попыток входа может усилить защиту от взлома.
5. Регулярное обновление прошивки
Обновление прошивки роутера крайне важно для закрытия возможных уязвимостей безопасности. Производители постоянно обновляют прошивку, исправляя ошибки и дополняя ее новыми мерами защиты.
Реализация этих мер позволит повысить защиту роутера от DDoS-атак и вредоносного ПО, а также снизить нагрузку на процессор и обеспечить более стабильную работу сети.
|
FAQs Categories: |
Many Asus AC routers, including RT-AC68U, RT-AC86U, AC88U, etc. have an issue where one of the CPU cores seems stuck at 100% utilization, especially during transfers. The high CPU usage issue is present with many firmware versions, including the popular Merlin firmware spin off. Usually only one of the CPU cores seems stuck at 100%, but the router is still struggling.
To check the CPU usage — in the router’s web admin interface, under «Network Map», click on the «Status» tab in the right-hand menu bar under «System Status.» To fix the issue, follow the steps below:
Turn off Wireless «Auto channel selection» — this is by far the most common cause. The router constantly monitors channels to try and find less interference and causes unnecessary high CPU load. Login to your router’s admin interface, navigate to «Wireless > 2.4GHz > Control Channel» and change it from «Auto» to an unused channel. Repeat for the 5GHz frequency band.
Turn off QoS — if you still see high CPU usage, under «Adaptive QoS > QoS», choose «Bandwidth Limiter», or turn off QoS.
USB flash drive issues — sometimes the USB flash drive used for shared storage may have issues, try unplugging it to see if that changes your CPU usage. Reformatting it and using the USB 2.0 port instead of USB 3.0 may help.
If you are still having issues, or you’d simply like to figure out exactly which process is causing the high load, login into the router with SSH. You will have to enable SSH in the «Administration > System» menu. Use the same admin username/password as with the web interface. Once you are logged in, try the «top» command, and see which process is using the CPU excessively.
Other possible solutions:
— upgrade to the latest firmware from Asus
— unplug router, wait a couple of seconds and plug back in
— reset router (hold down reset button for 10s while plugging in) — you will need to reconfigure everything, including wireless security, etc.
Notes:
Wireless issues (most commonly auto channel switching) cause high CPU usage of this process: /usr/sbin/acsd
To find a good unused wireless channel for less interference, you can simply use an Android app like «Wifi Analyzer»
High RAM usage is not an issue under linux environments, as memory is being used for caching, this is quite normal.
See also: Asus router Traffic Analyzer — Statistic empty?
|
Когда маршрутизатор не справляется с нагрузкой
Время на прочтение
3 мин
Количество просмотров 30K
Поделюсь одним случаем из телекоммуникационной практики.
У нас стоит циска 26-й серии (2620XM). На ней заведено около четырёх десятков сабинтерфейсов. Большинство для локальных абонентов, расположенных в том же здании, и есть несколько линков на дальние точки. Среди них аэропорт, кирпичный завод, горнолыжный комплекс, совхоз. «Да это ж старьё непотребное» — скажете вы и будете правы, но так исторически сложилось. Однако суть не в этом.
И вот некоторое время назад оказалось что нагрузка слишком высока. Сначала это проявлялось в некоторых задержках при работе в консоли. Типа набираешь команду, а буквы появляются не сразу а немного с задержкой. Потом периодически стал увеличиваться пинг до циски с удалённых точек. Следующий симптом — иногда отваливающийся канал в интернет (при этом маршрутизация внутри локальной сети работала безупречно и потерь не было). А в логах тем временем жуткая картина о сильно активном использовании CPU. Загрузка процессора не опускается ниже 80%, а большую часть времени 95-99%. Теперь пинг стал теряться даже если ты находишься в той же подсети. Интернет захромал на обе ноги.
Проблемы было две: эта циска выполняла функции NAT’а, который очень нехило нагружает маршрутизатор, и наличие всего одного интерфейса на борту. Такая схема подключения называется маршрутизатор на палочке, потому что от свитча идёт всего один линк до него, а все подсети заводятся на сабинтерфейсах. Получается, что весь трафик — даже локальный в рамках одного здания проходит через один порт и через него же идёт весь трафик, исходящий вовне. Кроме того циска также передавала голос от одной АТС к другой.
Так дальше продолжаться не могло. И настал один прекрасный момент, когда сеть большую часть дня просто лежала. Практически перестал ходить даже локальный трафик. До кучи это совпало с важной телефонной конференцией одного из абонентов (больше половины звонков отбрасывалась из-за высокой нагрузки) и не менее важной презентацией другого. Меры нужны были экстренные — если на следующий день всё повторится, то последствия будут просто непоправимыми — подошёл срок сдачи бухгалтерской отчётности. Еле ворочается не только интернет, но и связь с серверами 1С и Галактики.
Покупку нового более производительного маршрутизатора скорее всего бы не одобрили, тем более, что на полке лежала 48-портовая каталиста и ещё одна 26-ая циска. Да и придти он физически не успеет. Каталист 3550 — это L3-коммутатор и вполне справляется с маршрутизацией. Кроме того на нем можно настраивать L3-интерфейсы, то есть не привязывать их ВЛАН’ам, а назначать на них IP.
Вторая циска 26-й серии с двумя портами, что позволит не пускать весь трафик через одну дырку: локальных абонентов подключить к одному порту, а второй выделить под аплинк к удаленному бордеру.
Решение в общем-то простое:
1)Выносим NAT на отдельный маршрутизатор. (Он будет заниматься исключительно NAT’ом и маршрутизацией белых IP)
2)Выносим все сабинтерфейсы на каталисту (это облегчит передачу данных по локальной сети и разгрузит восходящий канал)
3)Старая циска остаётся только для телефонного транзита.
На схеме это можно выразить примерно так:
Розовым отображён маршрут пакета, отправленного в интернет, сиреневым путём следует внутренний пакет с адресатом из сети 172.16.0.0/16. Зелёный — путь телефонного вызова.
То есть, если пакет отправляется в сетку 172.16.0.0, то каталиста маршрутизирует его в соответствии со своей таблицей, а шлюзом по умолчанию является маршрутизатор, который проивзодит натинг и если пакет отправлен не в 172-ую сеть, то он натится на белый IP и отправляется по другому логическому каналу прямиком на бордер. При этом второй маршрутизатор просто выполняет функцию едва ли не голосового шлюза — принимает по E1 данные от АТС и по Ethernet вместе с остальным локальным трафиком отправляет на другую циску.
Схема не очень рациональная в плане использования железа. Но как временная всё же сгодится.
Это сильно снизило нагрузку на оборудование — средняя загруженность процессора маршрутизатора для NAT’а составляет 20-30%, у каталисты и того меньше. Проблемы прекратились.
У такого подхода есть один существенный недостаток — каталиста всё-таки не маршрутизатор в полном смысле этого слова. Например, на ней нельзя вешать rate-limit на логический интерфейс, да и с физическим всё сложно. В лучшем случае получится ограничить скорость входящего на интерфейс трафика для конкретного acl, но кому оно надо?
Следовательно, как красиво бы мы не выкрутились из ситуации, нужно покупать нормальный производительный маршрутизатор и строить классическую схему.
P.S. Если интересуют технические подробности реализации новой схемы или какие-то вопросы, я добавлю их в топик.
Introduction
This document describes common symptoms and causes of high CPU utilization on Cisco routers and provides guidelines and solutions for common issues.
Prerequisites
Requirements
Cisco recommends that you have knowledge of these topics:
- Cisco routers
- Cisco IOS® software switching paths
For information on Cisco IOS software switching paths, see Performance Tuning Basics.
Components Used
This document is not restricted to specific software and hardware versions.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Symptoms of High CPU Utilization
This list describes common symptoms of high CPU utilization. If you notice any of these symptoms, troubleshoot the problem with steps provided in this document.
-
High percentages in the
show processes cpu
command output.If you have the output of a show processes cpu command from your Cisco device, you can use Cisco CLI Analyzer to display potential issues and fixes.
Note: To use Cisco CLI Analyzer, you must be a registered Cisco user, be logged in, and have JavaScript enabled.
-
Slow performance
-
Services on the router fail to respond, for instance:
-
Slow response in Telnet or unable to Telnet to the router
-
Slow response on the console
-
Slow or no response to ping
-
Router does not send routing updates to other routers
-
-
High buffer failures
Troubleshoot High CPU Utilization
Once you notice any of the symptoms from the Symptoms of High CPU Utilization:
-
Check for a possible security issue. Commonly, high CPU utilization is caused by a security issue, such as a worm or virus operating in your network. This is especially likely to be the cause if there have not been recent changes to the network. Usually, a configuration change, when you add additional lines to your access lists can mitigate the effects of this problem. Cisco Product Security Advisories and Notices contains information on detection of the most likely causes and specific workarounds.
For additional information, refer to:
-
100 Questions and Answers about Internet Threats
-
Cisco Product Security Advisories and Notices
-
Cisco Threat Control
-
-
Make sure all
debug
commands in your router are turned off with theundebug all
orno debug all
commands. -
Are you able to issue
show
commands on the router? If yes, start to collect more information immediately, with theseshow
commands. -
Is the router inaccessible? Can you reproduce this problem? If yes, power-cycle the router and, before you reproduce the problem, configure the
scheduler interval 500
command. This schedules low priority processes to run every 500 milliseconds, which provides time for you to run some commands, even if CPU usage is at 100 percent. On Cisco 7200 and Cisco 7500 Series Routers, use thescheduler allocate 3000 1000
command. -
Does the router show symptoms of high CPU utilization at brief and unpredictable intervals? If yes, periodically collect the output of the
show processes cpu
command, which shows if the high CPU utilization is caused by interrupts or by a certain process. Use this UNIX script and, based on what you find first, modify the script to collect data needed for further investigation of the issue.
Determine Causes and Solve the Problem
Use the show processes cpu command to check if CPU utilization is high due to interrupts or processes.
High CPU Utilization due to Interrupts
For more information, refer to Troubleshooting High CPU Utilization Caused by Interrupts. If the level of the CPU rises due to interrupts that are likely due to CEF switching packets, the level of CPU does not affect the router performance.
High CPU when Enabling NetFlow NDE on Cisco 7600 Series Router
If NetFlow is configured for version 7, the flow is performed by the Routing Processor, which can cause high CPU utilization.
To troubleshoot the high CPU utilization due to NetFlow version 7, configure mls nde sender version 5, as the NetFlow export is performed by the SP, which is the default for version 5 or version 9.
High CPU Utilization due to Processes
Check which process loads the CPU. Unusual activity related to a process results in an error message in the log. Therefore, the output of the show logging exec
command must be checked first for any errors related to the process which consumes lots of CPU cycles.
You can use debug commands to troubleshoot high CPU utilization in these processes. Debug commands must be carried out with extreme caution because it can raise the CPU utilization even more. These prerequisites must be met in order to use debug commands safely:
-
All logging destinations except buffer logging must be either disabled or their logging severity level must be lowered from 7 (debugging) to 6 (informational) or less, with use of the appropriate
logging destination [ severity-level ] configuration
command. To see which logging destinations and corresponding levels are enabled, read the header lines of theshow logging exec
command. -
Logging buffer size must be increased in order to capture sufficient information. For more details, refer to the description of the
logging buffer global configuration
command. -
In order to be able to better read and understand debugs, the datetime and millisecond timestamps must be enabled. For more details, refer to the description of the
service timestamps global configuration
command.
A sample debugging session of IP packets is provided in Troubleshooting High CPU Utilization in the IP Input Process.
To troubleshoot high CPU utilization in specific processes, refer to:
-
ARP Input—ARP Input section of the document Troubleshooting High CPU Utilization due to Processes.
-
BGP Router—High CPU due to BGP Router Process section of the document Troubleshooting High CPU caused by the BGP Scanner or BGP Router Process.
-
BGP Scanner—High CPU due to BGP Scanner section of the document Troubleshooting High CPU caused by the BGP Scanner or BGP Router Process.
-
EXEC—High CPU Utilization in the EXEC and Virtual EXEC Processes.
-
HyBridge Input—Troubleshoot High CPU Utilization caused by the HyBridge Input Process on Routers With ATM Interfaces.
-
IP Input—Troubleshooting High CPU Utilization due to the IP Input Process.
-
IP Simple Network Management Protocol (SNMP)—IP Simple Network Management Protocol (SNMP) Causes High CPU Utilization.
-
LC ADJ Updater—What Causes High CPU Utilization in the LC Adjacency Updater Process on a Cisco 12000 Series Internet Router?
-
TCP Timer—TCP Timer section of the document Troubleshooting High CPU Utilization due to Processes.
-
TTY Background—TTY Background section of the document Troubleshooting High CPU Utilization due to Processes.
-
Virtual EXEC —See the link for EXEC. High CPU Utilization in Exec and Virtual Exec Processes.
-
Vtemplate Backgr—Virtual Template Background section of the document Troubleshooting High CPU Utilization due to the Processes.
-
SSH Process—Can go high if it captures a
show tech
or a debug is enabled. -
Other processes—Other Processes section of the document, Troubleshooting High CPU Utilization due to the Processes.
PCI and FAST Memory Pools Show Very High Utilization
It is normal to see low free memory with PCI and Fast memory pools. The PCI memory is used for memory access to the GT64260 controller on the PRP mainboard for the PCI buses connected to it. This memory is used for internal communication between the system controller and other parts, so it appears to be high all the time.
If more memory is needed, it falls back to processor pool memory. The Fast memory is a small amount of memory that has been set aside for use by the hardware Interface Descriptor Block (IDB) data structures. This memory is also completely reserved throughout bootup, so it is always shows as high since the memory is completely used. Because of this, it is normal to see low free memory with the Fast memory pool.
%SNMP-4-HIGHCPU: Process exceeds [dec]ms threshold ([dec]ms IOS quantum) for [chars] of [chars]—result [chars]
The CPU hog message looks like this:
SNMP-4-HIGHCPU: Process exceeds 200ms threshold (200ms Cisco IOS quantum) for GET of rmon.19.16.0--result rmon.19.16.0
A new syslog message (HIGHCPU) was added to Cisco IOS in 12.4(13). If a process holds on to the CPU for more than 200 ms, it reports a HIGHCPU message. The HIGHCPU message has no impact on the router. It just lets you know what process has caused the high CPU. The HIGHCPU message is similar to the CPUHOG message, but the HIGHCPU message has a much lower tolerance threshold, at 1/10 the amount of time compared to a CPUHOG message, that is, measured in milliseconds). In versions prior to 12.4(13) on the 2600, the processes ran for longer times but did not generate messages because the Cisco IOS versions did not have this enhancement.
SNMP PDU processing (MIB object queries) are supposed to be performed in a single CPU time quantum to ensure that each object in the PDU is retrieved as if simultaneously. This is a requirement imposed by the SNMP protocol standard. Some objects are aggregates of a lot of data in the system, so, even though they are single objects, there is a lot of processing involved due to the way they are instrumented. If they do not relinquish the CPU, as required by MIB instrumentation rules, there is a possibility of this error message. Additionally, if you poll several different objects in the same object group/table and get the error message, is not unusual because of this same reason.
This message is used to identify objects that use more CPU time than expected (but still not CPUHOG). Some NMS/instrumentation tools do not behave well when polling. This issue is documented in Cisco bug ID CSCsl18139.
Note: Only registered Cisco users have access to internal tools and bug information.
High CPU due to Software Encryption
When there is no hardware encryption module installed in the device, then all encrypted traffic comes through the device has to be encrypted by the software. This is very CPU intensive. It is not recommended to use software encryption for any encryption deployment with a reasonable throughput requirement. One option to resolve this issue is to reduce the volume of encrypted traffic (re-route traffic or limit the flows that are encrypted). However, the best way to address this issue is to get a Hardware Encryption module installed for this device which eliminates the need for encryption to take place through the software.
Note: If you enable crypto maps on Tunnel/Physical interfaces it causes the memory consumption process and can cause an increase in CPU.
High CPU Utilization due to Fragmentation
Reassemblies can drive up the CPU very high if the CPU has to reassemble a large number of packets.
To troubleshoot the high CPU utilization due to fragmentation, issue the tcp mss-adjust 1400 command on the interface which sets the maximum segment size (MSS) value of TCP synchronize/start (SYN) packets that go through a router.
Commands to Obtain More Information
These commands provide more information about the problem:
-
show processes cpu
-
show interfaces
-
show interfaces switching
-
show interfaces stat
-
show ip nat translations
-
show align
-
show version
-
show log
For more details on show commands, see the Cisco IOS Configuration Fundamentals Command Reference.
If the router is completely inaccessible, first power-cycle it. Then, periodically collect the output of the commands in this section, except for the show log
command, whose messages must be logged on a syslog server. The interval to collect the output must be five minutes. You can collect the data manually or automatically, with this UNIX shell script . You can also collect data with HTTP or SNMP.
The show processes cpu
Command
This is an example of the header of the show processes cpu
command.
CPU utilization for five seconds: X%/Y%; one minute: Z%; five minutes: W% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
This table describes the fields in the header:
Field | Description |
---|---|
X |
Average total utilization during last five seconds (interrupts + processes) |
Y |
Average utilization due to interrupts, during last five seconds1 |
Z |
Average total utilization during last minute2 |
W |
Average total utilization during last five minutes2 |
PID |
Process ID |
Runtime |
CPU time the process has used (in milliseconds) |
Invoked |
Number of times a process has been called |
uSecs |
Microseconds of CPU time for each invocation |
5Sec |
CPU utilization by task in the last five seconds |
1Min |
CPU utilization by task in the last minute2 |
5Min |
CPU utilization by task in the last five minutes2 |
TTY |
Terminal that controls the process |
Process |
Name of process |
1CPU utilization on process level = X — Y
2Values do not represent an arithmetical average, but an exponentially decayed average. Thus, more recent values have more influence on the calculated average.
For details, refer to the show commands reference guide.
Note: Total CPU utilization must not be used as a measure of the ability of the router to switch more packets. On Cisco 7500 routers, Versatile Interface Processors (VIPs) and Route/Switch Processors (RSPs) do not report linear CPU utilization. Close to half of the switching packet-per-second power comes after 90 to 95 percent CPU utilization.
The show interfaces
Command
This command is used to determine active interfaces.
The show interfaces switching
Command
This command is used to determine active switching paths on interfaces.
This is a sample output of the show interfaces switching
command for one interface:
RouterA#show interfaces switching Ethernet0 Throttle count 0 Drops RP 0 SP 0 SPD Flushes Fast 0 SSE 0 SPD Aggress Fast 0 SPD Priority Inputs 0 Drops 0 Protocol Path Pkts In Chars In Pkts Out Chars Out Other Process 0 0 595 35700 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 IP Process 4 456 4 456 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 IPX Process 0 0 2 120 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 Trans. Bridge Process 0 0 0 0 Cache misses 0 Fast 11 660 0 0 Auton/SSE 0 0 0 0 DEC MOP Process 0 0 10 770 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 ARP Process 1 60 2 120 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 CDP Process 200 63700 100 31183 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0
The output lists the switching paths for all protocols configured on the interface, so you can easily see what kind and the amount of traffic that goes through the router. This table explains the output fields.
Field | Definition |
---|---|
Process |
Processed packets. These can be packets destined for the router, or packets for which there was no entry in the fast switching cache. |
Cache misses |
Packets for which there was no entry in fast switching cache. The first packet for this destination (or flow — depends on the type of fast switching configured) is processed. All subsequent packets are fast switched unless fast switching is explicitly disabled on the outgoing interface. |
Fast |
Fast switched packets. Fast switching is enabled by default. |
Auton/SSE |
Autonomous switched, silicon switched or distributed switched packets. Available only on Cisco 7000 series routers with a Switch Processor or Silicon Switch Processor (for autonomous switching or silicon switching, respectively), or on Cisco 7500 series routers with a VIP (for distributed switching). |
The show interfaces stat
Command
This command is a summarized version of the show interfaces switching
command. This is a sample output for one interface:
RouterA#show interfaces stat Ethernet0 Switching path Pkts In Chars In Pkts Out Chars Out Processor 52077 12245489 24646 3170041 Route cache 0 0 0 0 Distributed cache 0 0 0 0 Total 52077 12245489 24646 3170041
The output of the show interfaces stat
command is different for different platforms, and depends on available and configured switching paths.
The show ip nat translations
Command
The show ip nat translations
command displays the Network Address Translation (NAT) translations active on the router. Each active translation generates CPU interrupts and has an impact on the total CPU utilization of the router. A very large number of translations can have a performance impact on the router.
This is a sample output from the show ip nat translations
command:
router#show ip nat translations Pro Inside global Inside local Outside local Outside global --- 172.16.131.1 10.10.10.1 --- ---
The show align
Command
This command is available only on reduced instruction set computing (RISC) processor-based platforms. On these platforms, the CPU can correct for memory reads or writes that do not align. This is sample output:
Alignment data for: 4500 Software (C4500-DS40-M), Version mis-aligned RELEASE SOFTWARE (fc1) Compiled Tue 31-Mar-98 15:05 by jdoe Total Corrections 33911, Recorded 2, Reads 33911, Writes 0 Initial Initial Address Count Access Type Traceback 40025F4D 15561 16bit read 0x606F4A7C 0x601C78F8 0x6012FE94 0x600102C0 40025F72 18350 32bit read 0x606FB260 0x6013113C 0x600102C0 0x60010988
The show version
Command
To track high CPU utilization problems, the important information to take from the command output is the Cisco IOS Software version, platform, CPU type, and the uptime of the router. The command reference gives a detailed explanation of this command.
The show log
Command
This command shows the contents of buffered log messages.
EEM Scripts for Automatic Data Collection in High CPU Conditions
Embedded Event Manager can be used to automatically collect data when a high CPU condition occurs. EEM is triggered by monitoring either the SNMP OID for the process utilization or by monitoring the syslog messages for the output from the CPU threshold command. Various show commands can be executed through the EEM script, and the output can be saved to the file system.
Example EEM Script with the SNMP OID
This script is executed when the process utilization increases about 85%.
For more information, see How to Collect CPU Utilization on Cisco IOS Devices Using SNMP.
event manager applet high-cpu ! event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3 get-type next entry-op gt entry-val 85 poll-interval 5 exit-time 500 maxrun 600 ! action 0.1 cli command "enable" action 0.2 syslog msg "TAC - Capturing high cpu information to flash:" action 0.3 cli command "term length 0" action 1.1 cli command "show process cpu sorted | redirect flash:eem-cpu1.txt" action 1.2 cli command "show interface | redirect flash:eem-interface1.txt" action 1.3 cli command "show interface stats | redirect flash:eem-stat1.txt" action 1.4 cli command "show ip traffic | redirect flash:eem-traffic1.txt" action 4.1 syslog msg "TAC - Finished logging information to separate eem files in flash" action 9.4 cli command "end" action 9.5 cli command "term default length" ! ! end
Example EEM Script with the CPU Threshold Notifications Messages
A combination of EEM and the CPU threshold notifications command can trigger the EEM script. In this example, a CPURISHINGTHRESHOLD syslog message is generated when the utilization rises over 85% for a 5 second interval. The EEM script can trigger off the syslog message and execute a list of commands that are saved to a file on the file system.
process cpu threshold type total rising 85 interval 5 ! event manager applet high-cpu event syslog pattern "CPURISINGTHRESHOLD" action 0.1 syslog msg "EEM: HIGH CPU detected. Writing info to flash:eem-log.txt" action 0.2 cli command "enable" action 0.3 cli command "term exec prompt timestamp" action 0.4 cli command "term len 0" action 1.1 cli command "show process cpu sorted | append flash:eem-log.txt" action 1.2 cli command "show proc mem sorted | append flash:eem-log.txt" action 1.3 cli command "show mem alloc total | append flash:eem-log.txt" action 2.2 syslog msg "EEM: Self-removing applet from configuration..." action 2.5 cli command "end" ! end
Example EEM Script to Start/Stop CPU Profile
EEM is used to start/stop CPU profiling as well as log data from various show commands. See Troubleshooting High CPU Utilization Due to Interrupts for more information.
event manager applet High_CPU event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.4.1 get-type exact entry-op ge entry-val "75" exit-time 10 poll-interval 5 action 0.1 syslog msg "CPU Utilization is high" action 0.2 cli command "enable" action 0.4 cli command "show version | append flash:CPU_Profile.txt" action 0.4 cli command "show log | append flash:CPU_Profile.txt" action 0.5 cli command "show process cpu sorted | append flash:CPU_Profile.txt" action 0.6 cli command "show interfaces | append flash:CPU_Profile.txt" action 0.7 cli command "show region | append flash:CPU_Profile.txt" action 1.2 cli command "profile 4000F000 42C9FFFF 4" action 1.3 cli command "profile start" action 2.3 syslog msg "Entering TCLSH" action 2.4 cli command "tclsh" action 2.5 cli command "after 240000" action 2.6 cli command "exit" action 2.9 syslog msg "Exiting TCLSH" action 3.0 cli command "profile stop" action 3.1 cli command "show profile terse | append flash:CPU_Profile.txt" action 3.2 cli command "clear profile" action 3.3 cli command "unprofile all" action 4.1 syslog msg "Finished logging information to flash:CPU_Profile.txt..." action 4.2 cli command "end"
UNIX Shell Script for Periodic Data Collection
This appendix describes a simple script that periodically captures data from the router. The core of the script is this line:
(echo "show version") | telnet 192.168.1.1
The command in parentheses is executed in sub-shell and the output is sent to a Telnet session. This is a sample script to capture the output from the show version
and show processes cpu
commands:
#!/opt/local/bin/bash ########################################### # Router's IP address # IP_ADDRESS='10.200.40.53' # Directory where the log files can be stored # DIR=/var/log/router ######################################## if [ ! -e $DIR ] then mkdir $DIR fi # Tag specification: mmddhhmm DATE=`date +'%m%d'` TIME=`date +'%H%M'` TAG=$DATE$TIME # Collect data from the router (echo "foo";\ echo "bar";\ echo "term len 0";\ echo "show version";\ echo "show processes cpu";\ echo "term len 15";\ echo "show memory summary";\ echo "q";\ sleep 30)|telnet $IP_ADDRESS > $DIR/info.$TAG 2>$DIR/info.$TAG.msg
Note: In this script all data, this includes the password, are sent in a clear text format.
In the first section, you need to specify the IP address and the destination directory for log files. The second section contains the actual commands that are sent to the router. The first is the username, then the password, and so on. to capture only the first lines of output of certain commands is included. Terminal length is set to something short (15 in this case), and the «q» character is sent only by prompt.
If data is collected periodically, the output of show version
shows if the problem has a periodic nature, for example, if it appears always at a certain time of day or on a particular day of the week. If you need to collect the output of more commands, they can be added to the script in the same manner as those shown in the example. If you need to truncate the output sent to the file, first increase the sleep period (the sleep command in parenthesis).
Run this script every five minutes if the high CPU utilization problem appears often and does not last long. Otherwise, you can run it every 15 or 30 minutes. For ease of use, save the script in a file such as /usr/bin/router-script . Then, to run it every five minutes, add the next line to the /etc/crontab file:
*/5 * * * * /usr/bin/router-script
Restart the cron server. If you do not have the authority to change the /etc/crontab file, run the script in a separate process, like this:
while [ 1 ]; do ./router-script ; sleep 300; done &
Related Information
- High CPU Utilization on Catalyst 2900XL/3500XL Switches
- Performance Tuning Basics
- Cisco Technical Support & Downloads