Маршрутизаторы : Маршрутизаторы Cisco серии 10000

Решение проблемы высокой загрузки CPU на маршрутизаторах Cisco

5 апреля 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Отзыв


Интерактивно этот документ предлагает анализ конкретного устройства Cisco.


Содержание


Введение

В этом документе объясняются общие симптомы и причины высокой загруженности CPU в маршрутизаторах Cisco и даются указания и решения по устранению неполадок.

Предварительные условия

Требования

Устранение проблем высокой загрузки ЦП на маршрутизаторах Cisco требует понимания Cisco коммутируемые пути программного обеспечения IOS�. Информацию о коммутируемых путях ПО Cisco IOS см. в разделе Основы настройки производительности.

Используемые компоненты

Настоящий документ не имеет жесткой привязки к каким-либо конкретным версиям программного обеспечения и оборудования.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Технические рекомендации Cisco. Условные обозначения.

Симптомы высокой загруженности CPU

Данный список содержит распространенные симптомы высокой загрузки CPU. Если присутствует любой из описанных признаков, для разрешения проблемы выполните действия по устранению неполадок, приведенные в данном документе.

  • Высокие проценты в команде show processes cpu выведены

    Если у вас есть выходные данные команды show processes cpu от устройства Сisco, можно использовать для получения наглядной информации о возможных проблемах и способах их устранения. Для работы с необходимо быть зарегистрированным пользователем, войти в систему и включить поддержку JavaScript.

  • Низкое быстродействие

  • Службы маршрутизатора не отвечают, например:

    • Задержка ответа Telnet, или невозможно получить доступ к маршрутизатору по протоколу Telnet

    • Медленный ответ на консоли

    • Медленный или безответный для запроса ping

    • Маршрутизатор не передает обновления маршрута к другим маршрутизаторам

  • Высокие ошибки буфера

Первоначальное устранение неполадок

Как только вы замечаете любой из признаков от Симптомов высокой загруженности CPU:

Выяснение причин и решение проблемы

Используйте команду show processes cpu, чтобы определить, чем вызвана высокая загрузка ЦП, прерываниями или процессами.

Высокая нагрузка CPU из-за прерываний

Для получения дополнительной информации обратитесь к Устранению проблем Высокой загрузки ЦП, Вызванной Прерываниями. Если уровень ЦПУ повышается из-за прерываний, которые являются вероятной причиной к пересылающим в режиме CEF пакетам, уровень ЦПУ не влияет на производительность маршрутизатора.

Высокая загрузка CPU при Включении NDE Netflow на маршрутизаторе Cisco серии 7600

Если NetFlow настроен для версии 7, поток выполнен Процессором маршрутизации, который мог вызвать высокую загрузку ЦП.

Для устранения проблем высокой загрузки ЦП из-за версии 7 Netflow, настройте версию 5 mls nde sender, поскольку Экспорт NetFlow выполнен SP, который является по умолчанию для версии 5 или версии 9.

Высокий уровень использования ресурсов CPU процессами

Проверьте, какой процесс загружает ЦПУ. Необычная активность, относящаяся к процессу, приводит к сообщению об ошибках в журнале. Таким образом, выходные данные команды show logging exec следует проверить, в первую очередь, на наличие любых ошибок, относящихся к процессу, использующему большое количество циклов ЦП.

Отладка также является очень полезной при устранении проблемы высокой загруженности ЦП процессами. Однако отладку следует выполнять очень осторожно, поскольку это может привести к еще большей загрузке ЦП. Отладка будет безопасной и эффективной при выполнении следующих предварительных условий:

В разделе Решение проблемы высокой загрузки ЦП в процессе IP входа приведен пример сеанса отладки IP-пакетов.

Для решения проблемы высокой загрузки ЦП конкретными процессами используйте соответствующую ссылку:

  • Ввод ARP — Раздел ввода ARP документа, Устраняющего неполадки Высокой загрузки ЦП из-за Процессов

  • Маршрутизатор под управлением BGP — Высокая загрузка CPU из-за раздела Процесса маршрутизатора под управлением BGP документа, Устраняющего неполадки Высокой загрузки CPU, Вызванной Сканером bgp или Процессом маршрутизатора под управлением BGP

  • Сканер bgp — Высокая загрузка CPU из-за раздела Сканера bgp документа, Устраняющего неполадки Высокой загрузки CPU, Вызванной Сканером bgp или Процессом маршрутизатора под управлением BGP

  • EXEC — высокая загрузка ЦП в EXEC и виртуальных процессах Exec

  • Процесс HyBridge Input — устраняющий неполадки высокой загрузки ЦП, вызванной процессом HyBridge Input на маршрутизаторах с ATM-интерфейсами

  • Ввод IP — устраняющий неполадки высокой загрузки ЦП из-за процесса IP - ввода

  • Протокол SNMP IP — протокол SNMP IP вызывает высокую загрузку ЦП

  • Средство обновления ADJ LC — что вызывает высокую загрузку ЦП в процессе средства обновления смежности LC на Интернет-маршрутизаторе Cisco 12000 серии?

  • Таймер TCP — раздел Таймера TCP документа, Устраняющего неполадки Высокой загрузки ЦП из-за Процессов

  • Фоновый процесс TTY — раздел Фонового процесса TTY документа, Устраняющего неполадки Высокой загрузки ЦП из-за Процессов

  • Процесс Virtual Exec — высокая загрузка ЦП в exec и виртуальных процессах Exec

  • Vtemplate Backgr — раздел Общие сведения Виртуального шаблона документа, Устраняющего неполадки Высокой загрузки ЦП из-за Процессов

  • Процесс SSH — Мог бы пойти высоко при получении технологии показа, или некоторая отладка включена.

  • Другие процессы — Другой раздел Процессов документа, Устраняющего неполадки Высокой загрузки ЦП из-за Процессов

Память PCI и пулы быстродействующей памяти показывают очень высокий коэффициент использования

Это обычно для наблюдения малого объема свободной памяти с пулами Быстродействующей памяти и памятью PCI. Память PCI используется для доступа к памяти к контроллеру GT64260 на системной плате PRP для шин PCI, связанных с ним. Эта память используется для внутренней связи между системным контроллером и другими частями, таким образом, это, кажется, высоко все время.

Если большая память необходима, она переключается на память пула процессора. Быстродействующая память является малой величиной памяти, которая была обойдена для использования Блоком дескриптора интерфейса оборудования (IDB) структуры данных. Эта память также полностью зарезервирована всюду по загрузке, таким образом, это, всегда показывает как высоко, так как полностью используется память. Из-за этого это обычно для наблюдения малого объема свободной памяти с пулом Быстродействующей памяти.

%SNMP-4-HIGHCPU: Процесс превышает [декабрь] порог мс ([декабрь] квант IOS мс) для [char] [char] - результат [char]

Сообщение CPU hog похоже на это:

SNMP-4-HIGHCPU: Process exceeds 200ms threshold (200ms IOS quantum)
for GET of rmon.19.16.0--result rmon.19.16.0

Новое сообщение системного журнала (HIGHCPU) было добавлено к IOS в 12.4 (13). Если процесс держится за ЦПУ больше чем для 200 мс, это сообщает о сообщении HIGHCPU. Сообщение HIGHCPU не оказывает влияния на маршрутизатор. Это просто сообщает, какой процесс вызвал высокую загрузку CPU. Сообщение HIGHCPU подобно Сообщению CPUHOG, но сообщение HIGHCPU имеет намного более низкий порог допуска, в 1/10 период времени по сравнению с Сообщением CPUHOG, т.е. измеренный в миллисекундах). В версиях до 12.4 (13) на этих 2600, процессы работали в течение более длинных времен, но не генерировали сообщения, потому что версии IOS не имели этого усовершенствования.

Обработка PDU SNMP (запросы объекта MIB), как предполагается, выполнена в одном CPU кванте времени, чтобы гарантировать, что каждый объект в PDU получен как будто одновременно. Это - требование, наложенное стандартом протокола SNMP. Некоторые объекты являются агрегатами большого количества данных в системе, таким образом, даже при том, что они - отдельные объекты, существует большая обработка включенного из-за способа, которым они инструментованы. Если они не оставляют ЦПУ, как требуется по правилам набора средств MIB, существует возможность этого сообщения об ошибках. Кроме того, если вы опрашиваете несколько других объектов в том же групповом объекте / таблица и получаете сообщение об ошибках, весьма обычно из-за этой той же причины.

Это сообщение используется для определения объектов, которые используют больше Времени процессора, чем ожидаемый (но все еще CPUHOG). Некоторые программные средства NMS/instrumentation не ведут себя хорошо при опросе. Эта проблема задокументирована в идентификатор ошибки Cisco CSCsl18139 (только зарегистрированные клиенты).

Высокая загрузка CPU из-за Программного шифрования

Когда нет никакого модуля аппаратного шифрования, установленного в устройстве, тогда весь зашифрованный поток данных, проникающий через устройство, должен будет быть зашифрован программным обеспечением. Это - очень с интенсивной загрузкой ЦПУ. Это не, рекомендуют использовать программное шифрование для любых развертываний шифрования с разумным требованием пропускной способности. Одна опция для решения этого вопроса должна уменьшить громкость зашифрованного потока данных (перенаправьте трафик или ограничьте потоки, которые зашифрованы). Однако лучший способ решить эту проблему состоял в том, чтобы установить Модуль аппаратного шифрования для этого устройства, которое избавляет от необходимости шифрование иметь место через программное обеспечение.

Примечание: Включение криптокарт на Туннеле/Физических интерфейсах является процессом использования памяти и может вызвать увеличение ЦПУ.

Высокая загрузка ЦП из-за Фрагментации

Если ЦПУ должен повторно собрать большое число пакетов, повторные сборки могут подвезти ЦПУ очень высоко.

Для устранения проблем высокой загрузки ЦП из-за фрагментации, выйдите , tcp mss - отрегулировал команду 1400 года на интерфейсе, который устанавливает значение Maximum Segment Size (MSS) TCP, синхронизируют/начинают (SYN) пакеты, проходящие через маршрутизатор.

Команды для получения дополнительной информации

Эти команды позволяют получить дополнительные сведения о сбое:

Если маршрутизатор совершенно недоступен, сначала выключите и включите его. Затем периодически собирайте выходные данные команд в этом разделе, за исключением команды show log, сообщения которой должны быть зарегистрированы на сервере системного журнала. Выходные данные следует собирать с интервалом 5 минут. Данные можно собирать вручную или автоматически, используя этот сценарий оболочки UNIX. Можно также выполнить сбор данных с помощью HTTP или SNMP. Дополнительную информацию о настройке HTTP и SNMP на маршрутизаторе Cisco см. в разделе Настройка ПО Cisco IOS.

команда show processes cpu

Это пример заголовка команды "show processes cpu":

 CPU utilization for five seconds: X%/Y%; one minute: Z%; five minutes: W% 
  PID  Runtime(ms)  Invoked  uSecs    5Sec   1Min   5Min TTY Process 

В следующей таблице описаны поля этого заголовка:

Поле Описание
X Среднее суммарное использование за последние пять секунд (прерывания + процессы)
Y Средний уровень использования из-за прерываний за последние пять секунд1
Z Средняя общая загруженность в течение последней минуты 2
W Среднее суммарное использование за последние пять минут 2
PID Идентификатор процесса
Время выполнения Время CPU, использованное процессом (в миллисекундах)
Вызванный Число раз процесс вызвали
мкс Время CPU в микросекундах для каждого вызова процесса
5 Сек. Использование CPU заданием в последние пять секунд
1 Мин Использование CPU заданием в последние две минуты
5 мин Загрузка ЦПУ задачей в последних пяти minutes2
TTY # Управляющий процессом терминал
Процесс Имя процесса

1CPU используется на уровне процесса = X - Y

2Values — соответствует не арифметическому среднему, а экспоненциально затухающему среднему. Таким образом, последние значения больше влияют на рассчитанное среднее.

Щелкните эту ссылку, чтобы ознакомиться с подробным описанием команды show processes cpu.

Примечание: Общее использование CPU не должно использоваться в качестве меры возможности маршрутизатора коммутировать больше пакетов. В маршрутизаторах Cisco 7500 универсальные интерфейсные процессоры (VIP) и процессоры маршрутизации/коммутации (RSP) не сообщают о линейном использовании ЦП. Почти половина мощности коммутации в пакетах в секунду поступает после 90-95% загрузки CPU.

команда show interfaces

В справочнике по команде есть подробное объяснение команды "show interfaces".

команда show interfaces switching

Эта команда используется для определения активных путей маршрутизации на интерфейсах. Дополнительные сведения о коммутируемых путях в Cisco IOS см. в документе "Настройка коммутируемых путей".

Ниже приводится пример выходных данных команды show interfaces switching для одного интерфейса:

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 

Выход перечисляет пути коммутации для всех сконфигурированных на интерфейсе протоколов, так что вы можете легко увидеть, какой тип и количество трафика проходит через маршрутизатор. В этой таблице описаны поля выходных данных.

Поле Определение
Процесс Обработанные пакеты. Это могут быть пакеты, предназначенные для маршрутизатора, или пакеты, для которых не было входа в кэш-память быстрого переключения.
Cache misses Пакеты, для которых не было записей в кэше быстрой коммутации. Будет обработан первый пакет для этого пункта назначения (или поток – зависит от типа настроенной быстрой коммутации). Все последующие пакеты будут быстро переключаться, если только быстрое переключение не будет специально отключено на исходящем интерфейсе.
Быстро Быстрая коммутация пакетов. Быстрая коммутация включена по умолчанию.
Auton/SSE Пакеты с автономной коммутацией, пакеты с коммутацией с помощью кремниевых процессоров и пакеты с распределенной коммутацией. Доступны только на маршрутизаторах Cisco серии 7000 с процессором коммутации или кремниевым процессором коммутации (для автономной коммутации или коммутации с использованием кремниевых устройств соответственно) либо на коммутаторах Cisco серии 7500 с процессором VIP (для распределенной коммутации).

команда show interfaces stat

Эта команда – объединенная версия команды show interfaces switching. Это пример выходных данных для одного интерфейса:

 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 

Выходные данные команды show interfaces stat на разных платформах отличаются друг от друга, в зависимости от доступных и настроенных коммутируемых путей.

show ip nat translations

Команда show ip nat translations отображает трансляции Технологии NAT, активные на маршрутизаторе. Каждая активная трансляция генерирует прерывания ЦП и влияет на суммарное использование ЦП маршрутизатора. Большое число трансляций может повлиять на производительность маршрутизатора.

Это примерный результат команды show ip nat translations:

     router#show ip nat translations
     Pro Inside global    Inside local    Outside local    Outside global
     --- 172.16.131.1     10.10.10.1      ---              ---

команда "show align"

Данная команда доступна только на процессорных платформах RISC. В этих платформах CPU может корректировать нарушения выравнивания для чтения и записи в память. Ниже приведен пример выходных данных:

 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 

show version

Отслеживание проблем высокой загрузки CPU делает важной частью выхода данной команды версию программного обеспечения Cisco IOS, платформу, тип CPU и время работы маршрутизатора. В справочнике по команде приведено подробное описание команды show version.

команда show log

Эта команда отображает сообщения с промежуточными данными журнала регистрации. Дополнительные сведения о регистрации системных сообщений см. в разделе "Запись системных сообщений об ошибках" руководства "Устранение неполадок при настройке маршрутизатора".

Сценарии, исполняемые оболочкой UNIX, для периодического сбора данных

В этом приложении описывается простой сценарий для периодического снятия данных с маршрутизатора. Ядром сценария является эта строка:

  (echo "show version") | telnet 192.168.1.1

Команда в скобках выполняется в подоболочке, а результат выполнения передается сеансу Telnet. Это пример сценария для захвата выходных данных команд show version и show processes cpu:

     #!/opt/local/bin/bash

     ########################################### 
     # Router's IP address 
     # 
     IP_ADDRESS='10.200.40.53' 
       

     # Directory where the log files will 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 

Примечание: В этом сценарии все данные, включая пароль, передаются в формате открытого текста.

В первом разделе необходимо указать IP-адрес и каталог получателя для файлов журнала. Второй раздел содержит фактические команды, посылаемые на маршрутизатор. Сначала имя пользователя, затем пароль и т. д. Имеется способ для вывода только первых строк выходных данных некоторых команд. Длина терминала установлена небольшой (в данном случае она равна 15), а символ "q" послан только при помощи командной строки.

Если сбор данных проводится периодически, вывод команды show version указывает, периодически ли происходит проблема, например, если она происходит в определенное время дня или определенный день недели. Если необходимо собрать выходные данные для большего числа команд, их следует добавить в сценарий способом, аналогичным использованному в примере. При необходимости обрезать выходные данные, отправляемые в файл, сначала увеличьте период ожидания (команда sleep в скобках).

Выполняйте этот сценарий каждые 5 минут, если проблема высокой загрузки ЦП возникает часто и на кратковременный период. В других обстоятельствах его можно выполнять каждые 15 или 30 минут. Для облегчения использования сохраните сценарий в файле, например /usr/bin/router-script. Затем, чтобы запланировать выполнение сценария через каждые 5 минут, добавьте следующую строку в файл /etc/crontab:

     */5       *       *       *       *       /usr/bin/router-script

Перезапустите сервер cron. Если вы не имеете прав на изменение файла /etc/crontab, запустите сценарий в отдельном процессе, например:

     while [ 1 ]; do ./router-script ; sleep 300; done &

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения