отмена
Отображаются результаты для 
Вместо этого искать 
Вы имели в виду: 
Объявления
Добро пожаловать в Сообщество Технической поддержки Cisco. Мы рады получить обратную связь .
New Member

Ask the expert: High CPU на Catalyst 4500

с Дмитрием Леонтьевым

Добро пожаловать на первую сессию "Спроси Эксперта" (Ask the Expert) на русском языке.

Получите мнение эксперта и научитесь искать причины высокой загрузки CPU на коммутаторах серии Catalyst 4500 на русском Cisco Support Community с экспертом Дмитрием Леонтьевым, инженером поддержки команды TAC Россия, Москва.

Дмитрий - эксперт в области маршрутизации и коммутации, безопасности, управлении сетями дата центров. Опытный инструктор Cisco, много лет преподававший в учебном центре Redcenter.

Дмитрий окончил Уральский Педагогический Университет по специальности "Математика". Является обладателем сертификатов CCIE (#18291) и CCDP.

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

Пожалуйста не забывайте оценивать ответы Дмитрия, чтобы он знал, что вы получили ответ, который помог Вам.

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

Теги (4)
18 ОТВЕТ.
New Member

Ask the expert: High CPU на Catalyst 4500

Добрый день, Дмитрий.

Как говорят, с почином! -)

Так все же, что является причиной высокой загрузки CPU на Cisco Catalyst 4500 Series?

Cisco Employee

Ask the expert: High CPU на Catalyst 4500

Добрый день, Николай.

Спасибо за добрые слова и первый вопрос.

Высокую загрузку CPU на 4500 может вызывать достаточно много разных событий, например flapping MAC адресов или работа протокола spanning-tree. Самое главное в этой ситуации правильно идентифицировать причину высокой нагрузки на процессор коммутатора и постараться ее устранить.

В Cisco ТАС приходит довольно много запросов, посвященных данной проблеме, поэтому мы решили выбрать именно эту тему для первой сессии "Ask the expert" и я надеюсь, что данная дискуссия позволит вам получить знания необходимые для самостоятельного проведения процедуры траблшутинга, без обращения в Cisco TAC.

Если у вас есть более конкретные вопросы, посвященные данной теме, задайте их и я постараюсь на них ответить.

Дмитрий

Re: Ask the expert: High CPU на Catalyst 4500

Добрый день Николай еще раз. У меня такой вопрос: Как определить насколько нагружен наш процессор обработкой пакетов (т.е. когда CEF не может обработать пакет). Желательно не только на данный момент - но и историю хотя бы за час.

Имеется интересная команда show interface stats - но по ней нет никакой справки на cisco.com

Ну допустим мы имеем

Cat#sh ver

Cisco IOS Software, Catalyst 4000 L3 Switch Software (cat4000-I5K91S-M), Version 12.2(25)EWA9, RELEASE SOFTWARE (fc3)

Cat#sh int stats

GigabitEthernet1/1

             Switch path    Pkts In            Chars In                Pkts Out        Chars Out

             Processor          0                      0                         0                   0

             Route cache 2150217108    553743637627              0                   0

             Hardware     21447872125  10788785494545   36037954423 26130049392008

             Total            23598089233 11342529132172   36037954423 26130049392008

Как расшифровать вывод? Откуда взялся Route cache (значения в нем постепенно растут)?

Еще также интересует вопрос про два самых проблемных процесса - чем они занимаются и почему из-за них бывает высокая нагрузка процессора:

Cat4k Mgmt HiPri

Cat4k Mgmt LoPri

Ну и напоследок - как посмотреть что сильно нагружало нашу 4500 час назад? Т.е. иметь историю загрузки по процессам (Если можно то без CiscoWorks).

Cisco Employee

Ask the expert: High CPU на Catalyst 4500

Добрый день, Павел.

Спасибо за интересные вопросы.

1.Что касается статистики на интерфейсах.

Строка Processor показывает сколько пакетов попало в процессор.

Строка Hardware показывает сколько пакетов обработано аппаратно (CEF).

Чтобы сказать что-то по поводу строки Route cache мне требуется более детальное изучение вашего коммутатора. Не могли бы вы прислать мне по электронной почте (csc-russian@external.cisco.com) вывод команд show tech, show int gi 1/1 stats и show int gi 1/1 switching. После этого я смогу сказать более определенно, что за статистика отображается в данной строке.

2. Вы абсолютно правы, процессы  Cat4k Mgmt HiPri и Cat4k Mgmt LoPri в выводе команды show process cpu довольно часто показывают, что занимают много ресурсов процессора. Эти два  процесса объединяют несколько процессов,  которые выполняют важнейшие функции управления на Catalyst 4500. Эти процессы  управляют control plane,  а также обработкой пакетов данных.

Для того чтобы более детально увидеть, какие именно процессы используют ресурсы процессора, нужно воспользоваться командой show platform       health и уже после этого искать причину высокой нагрузки на процессор.

3.С помощью команды show process cpu history вы можете посмотреть какова была загрузка процессора за последние 60 секунд, 60 минут и 72 часа, но увидеть какие именно процессы грузили процессор, например час назад, средствами командной строки (без использования программ управления или скриптов), к сожалению нельзя. Именно поэтому важно получить вывод команд show process cpu и show platform health именно в момент наивысшей загрузки CPU, для того чтобы правильно понять причину загрузки.

С уважением, Дмитрий

Re: Ask the expert: High CPU на Catalyst 4500

Спасибо за ответы - письмо пришлю обязательно.

Но все же один вопрос остался без ответа:

Как определить насколько нагружен наш процессор обработкой пакетов (т.е. когда CEF не может обработать пакет). Какой процесс за это отвечает?

>3.С помощью команды

show process cpu history

вы можете посмотреть какова была загрузка процессора за последние 60 секунд, 60 минут и 72 часа, но увидеть какие именно процессы грузили процессор, например час назад, средствами командной строки (без использования программ управления или скриптов), к сожалению нельзя. Именно поэтому важно получить вывод команд show process cpu и show platform health именно в момент наивысшей загрузки CPU, для того чтобы правильно понять причину загрузки.

Хорошо - можно ли это сделать с помощью сторонних утилит или скриптов, если да то каких? Дайте хотя бы подсказку

Еще вопрос - чем отличаются команды show process cpu history и show platform health - они отображают соершенно разные процессы.

Cisco Employee

Ask the expert: High CPU на Catalyst 4500

Добрый день, Павел.

1.Загрузку процессора вы можете посмотреть с помощью команды show process cpu. Т.е. если вы видите, что у вас в течении долгого периода, например больше часа или несколько часов, загрузка составляет около 100% - это свидетельствует, что скорее всего что-то не так и много пакетов попадают в процессор для обработки.

2.Для работы с оборудованием я рекомендую использовать системы управления сетями, например у Cisco есть продукт под названием LMS (LAN Management Solution), в котором имеются инструменты получения нужной информации без непосредственного участия человека.

3.Как я уже писал процессы  Cat4k Mgmt HiPri и Cat4k Mgmt LoPri в выводе команды show process cpu являются по сути объединением нескольких процессов, список которых и поведение можно увидеть с помощью команды show platform health.

С уважением, Дмитрий

Re: Ask the expert: High CPU на Catalyst 4500

Спасибо. Где то я читал по моему у Пепельняка что привыводе команды

Cat#sh processes cpu

CPU utilization for five seconds: 16%/0%; one minute: 19%; five minutes: 20%

PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process

   1          12        67        179  0.00%  0.00%  0.00%   0 Chunk Manager  

Что обработка пакетов процессором (когда CEF не может обработать процесс) отображается в поле 16%/0% после "/" т.е. в нашем случае 0%.  Можете подсказать так это или нет потому что здесь

https://supportforums.cisco.com/message/3536828#3536828

Switch#show proc cpu sort | e 0.00

CPU utilization for five seconds: 17%/10%; one minute: 18%; five minutes: 18%

Here 17% is the total CPU utilization and 10% is the utilization due to interrrupt switching. In the above output CPU utilization due to process switching is 17-10=7%. Here is the difference between process switching and interrupt switching.

расшифровано немного подругому.

Т.е. что означают цифры 16%/0%?

Cisco Employee

Ask the expert: High CPU на Catalyst 4500

Добрый день, Павел.

Действительно, вы можете увидеть загрузку процессора за пять секунд в выводе команды show process cpu, например 17%/10%. В данном примере - 17% - это общая загрузка процессора, а 10% - это так называемые interrupts, которые являются частью 17%. 17-10=7% - это загрузка процессора системными процессами, список которых можно увидеть в выводе команды show process cpu. Фактически вы можете ориентироваться на первую цифру, чтобы оценить общую загрузку процессора, а довольно большая вторая цифра (10% в нашем примере) показывает нам, что какие-то пакеты обрабатываются не CEF, а процессором, и нам надо начинать поиск источника проблемы с помощью анализа обрабатываемого процессором пакетов.

Но это не значит, что не нужно искать источник проблемы, если вы видите например вот такой вывод 99%/1%. если возникла такая ситуация и не исчезает в течении продолжительного времени - то это тоже повод начать проводить траблшутинг и определение источника проблемы.

Если вам будет интересно, я могу привести пример, когда высокую нагрузку на процессор  создают системные процессы и как это можно определить.

С уважением, Дмитрий

Ask the expert: High CPU на Catalyst 4500

Да интересно.

Cisco Employee

Re: Ask the expert: High CPU на Catalyst 4500

Давайте рассмотрим пример, когда процессор 4500 грузят системные процессы, а не посторонний трафик.

При задании команды show process cpu мы видим следующий вывод:

Switch#show processes cpu

CPU utilization for five seconds: 74%/1%; one minute: 73%; five minutes: 50%

PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process

---

25 488 33 14787 0.00% 0.02% 0.00% 0 Per-minute Jobs

26 90656 223674 405 6.79% 6.90% 7.22% 0 Cat4k Mgmt HiPri

27 158796 59219 2681 32.55% 33.80% 21.43% 0 Cat4k Mgmt LoPri

28 20 1693 11 0.00% 0.00% 0.00% 0 Galios Reschedul

---

42 0 2 0 0.00% 0.00% 0.00% 0 AAA Dictionary R

43 78564 20723 3791 32.63% 30.03% 17.35% 0 Spanning Tree

44 112 999 112 0.00% 0.00% 0.00% 0 DTP Protocol

---

Здесь мы видим, что с одной стороны загрузка на процессоре довольно большая, но не из-за interrupts - 74%/1%.

Далее задаем команду show platform health

Switch#show platform health

%CPU %CPU RunTimeMax Priority Average %CPU Total

Target Actual Target Actual Fg Bg 5Sec Min Hour CPU

---

TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00

K2CpuMan Review 30.00 37.62 30 53 100 500 41 33 1 2:12

K2AccelPacketMan: Tx 10.00 4.95 20 0 100 500 5 4 0 0:36

 

 

В этом выводе показано, что процесс

K2CpuMan, отвечающий за обработку пакетов в CPU превысил установленное для него значение 37.62.

После этого проверяем очереди процессора с помощью команды

show platform cpu packet statistics:

 

Switch#show platform cpu packet statistics

---

Total packet queues 16

Packets Received by Packet Queue

 

Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg

---------------------- --------------- --------- --------- --------- ----------

Esmp 202760 196 173 128 28

Control 388623 2121 1740 598 16

 

Packets Dropped by Packet Queue

 

Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg

---------------------- --------------- --------- --------- --------- ----------

Control 17918 0 19 24 3

 

Здесь видно, что очередь Control обрабатывает довольно много пакетов.

Далее, нам надо найти источник этих пакетов:

Switch#show spanning-tree summary

Switch is in pvst mode

Root bridge for: none

Extended system ID is enabled

Portfast Default is disabled

PortFast BPDU Guard Default is disabled

Portfast BPDU Filter Default is disabled

Loopguard Default is disabled

EtherChannel misconfig guard is enabled

UplinkFast is disabled

BackboneFast is disabled

Configured Pathcost method used is short

---

Name Blocking Listening Learning Forwarding STP Active

---------------------- -------- --------- -------- ---------- ----------

2994 vlans 0 0 0 5999 5999

В данном примере возникла нагрузка на CPU из-за большого количества процессов протокола spanning-tree (PVST+). В этом случае рекомендуется использовать протокол MSTP, который позволяет уменьшить количество процессор для spanning tree, путем создания сущностей сразу для диапазона VLANов.

New Member

Ask the expert: High CPU на Catalyst 4500

Здравствуйте, Дмитрий!

Регулярно наблюдаю аналогичную проблему на другой линейке коммутаторов (хотя, как я понимаю, архитектурно близкой) - ME-4924-10GE.

Проблема проявляется эпизодически и виноват, наверняка, spanning-tree. При этом, основная нагрузка создаётся процессом Cat4k Mgmt LoPri.

Сеть построена следующим образом:

Два 49-х, установленных на узле агрегации, связаны линком, который участвует в сегменте REP.

Кольца L2-коммутаторов (Linksys, но это непринципиально, думаю) с поднятым MSTP, опираются на 49-е таким образом, что одно плечо каждого кольца приходит на одну циску, а другое - на вторую. И чтобы обойти конфликт с REP 49-е, фактически, не участвуют в работе MSTP, на интерфейсах, смотрящих на кольца, сделан l2protocol-tunnel stp.

Время от времени на 49-х наблюдается скачкообразный рост нагрузки до 97-99%. При размыкании кольца, вызвавшего проблему (это каждый раз могут быть разные кольца), нагрузка так же скачком падает до типичных 10%.

Cisco Employee

Ask the expert: High CPU на Catalyst 4500

Добрый день, Антон.

Процесс Cat4k Mgmt LoPri, который занимает ресурсы процессора  является набором других процессов,

которые выполняют важнейшие  функции управления на Catalyst 4500, и поведение которых вы можете  увидеть в выводе команды show platform health.

Я вам рекомендую в момент, когда нагрузка на процессор достигает  100%, выполнить команду show platform health и  определить какие процессы превышают установленные пределы в это время.

После этого нужно также воспользоваться командой show  platform cpu packet statistics для того чтобы увидеть какая  именно очередь у процессора наиболее загружена.

Если вы сможете  поместить в дискуссию вывод этих команд (а также show process cpu и show  process cpu history) в момент высокой нагрузки, мы можем обсудить  проблему более предметно.

С уважением, Дмитрий

New Member

Ask the expert: High CPU на Catalyst 4500

Здравствуйте, Дмитрий!

Спасибо за ответ.

Исходя из вывода show platform health основная нагрузка создаётся следующими двумя процессами:

K2CpuMan Review       30.00  53.11     30     28  100  500   77  57    2  1403:58

K2L2 Address Table R   2.00  22.22     12      5  100  500   28  20    0  296:10

Вывод show  platform cpu packet statistics сделующий:

Packets Dropped In Hardware By CPU Subport (txQueueNotAvail)

CPU Subport  TxQueue 0       TxQueue 1       TxQueue 2       TxQueue 3

------------ --------------- --------------- --------------- ---------------

           0          174699               3               0        56413316

           2               0      1108451560               0               0

RkiosSysPacketMan:

Packet allocation failures: 0

Packet Buffer(Software Common) allocation failures: 0

Packet Buffer(Software ESMP) allocation failures: 0

Packet Buffer(Software EOBC) allocation failures: 0

Packet Buffer(Software SupToSup) allocation failures: 0

IOS Packet Buffer Wrapper allocation failures: 0

Packets Dropped In Processing Overall

Total                5 sec avg 1 min avg 5 min avg 1 hour avg

-------------------- --------- --------- --------- ----------

             5599382        20        15        11          3

Packets Dropped In Processing by CPU event

Event             Total                5 sec avg 1 min avg 5 min avg 1 hour avg

----------------- -------------------- --------- --------- --------- ----------

Input Acl                      5599295        20        15        11          3

SA Miss                              2         0         0         0          0

CPU Generated                       85         0         0         0          0

Packets Dropped In Processing by Priority

Priority          Total                5 sec avg 1 min avg 5 min avg 1 hour avg

----------------- -------------------- --------- --------- --------- ----------

Normal                         1133534         4         0         0          0

Medium                              87         0         0         0          0

High                           4392367        16        11         5          0

Crucial                          73394         0         0         0          0

Packets Dropped In Processing by Reason

Reason             Total                5 sec avg 1 min avg 5 min avg 1 hour avg

------------------ -------------------- --------- --------- --------- ----------

STPDrop                             235         0         0         0          0

NoDstPorts                      5599147        20        15        11          3

Total packet queues 16

Packets Received by Packet Queue

Queue                  Total           5 sec avg 1 min avg 5 min avg 1 hour avg

---------------------- --------------- --------- --------- --------- ----------

L2/L3Control                 392642990      1663      1084       262         52

Host Learning                 57595491     16979      9224      1955        202

L3 Fwd Low                        3098         0         0         0          0

L2 Fwd High                    1927780         6         0         0          0

L2 Fwd Medium                      245         0         0         0          0

L2 Fwd Low                    10691277      2166      1911       415         46

L3 Rx Low                         4132         0         0         0          0

Packets Dropped by Packet Queue

Queue                  Total           5 sec avg 1 min avg 5 min avg 1 hour avg

---------------------- --------------- --------- --------- --------- ----------

L2/L3Control                    143405         0         0         0          0

Host Learning                777567734    143079     71808     13060          0

L2 Fwd Low                    45724935      9572     14105      4280          0

Cisco Employee

Ask the expert: High CPU на Catalyst 4500

Уважаемый Антон.

Судя по выводу команд, который вы привели, нагрузка на процессор создается не протоколом spanning tree, а некорректным поведением какого-то хоста (или сервера) в вашей сети. Вы можете обратить внимание, что наибольшее количество полученных пакетов, а также отброшенных пакетов имеет очередь Host Learning.

Packets Received by Packet Queue

Queue                   Total           5 sec avg 1 min avg 5 min avg 1 hour avg

----------------------  --------------- --------- --------- --------- ----------

L2/L3Control                  392642990      1663      1084       262         52

Host  Learning                 57595491     16979      9224      1955         202

L3 Fwd Low                        3098         0          0         0          0

L2 Fwd High                     1927780         6         0         0          0

L2 Fwd  Medium                      245         0         0         0          0

L2  Fwd Low                    10691277      2166      1911        415         46

L3 Rx Low                         4132          0         0         0          0

Packets Dropped by Packet Queue

Queue                   Total           5 sec avg 1 min avg 5 min avg 1 hour avg

----------------------  --------------- --------- --------- --------- ----------

L2/L3Control                     143405         0         0         0          0

Host  Learning                777567734    143079     71808     13060           0

L2 Fwd Low                    45724935      9572     14105       4280          0

Такая ситуация возникает, например когда какой-нибудь сервер подключен двумя интерфейсами к сети. Я вам рекомендую провести дальнейшее изучение проблемы, путем анализа самих пакетов, передаваемых в CPU на обработку для определения адреса проблемного устройства и изучение причины его некорректного поведения.


С уважением, Дмитрий

New Member

Ask the expert: High CPU на Catalyst 4500

Спасибо, Дмитрий!

Попробую проанализировать трафик.

Не понятно только почему размыкание кольца устраняет проблему...

Cisco Employee

Ask the expert: High CPU на Catalyst 4500

Тут все как раз логично - пакеты начинают приходить через один интерфейс, а не через два, конфликтуя на коммутаторе и ситуация сразу нормализуется.

Буду рад, если удалось вам помочь.

Если есть еще вопросы, задавайте.

С уважением, Дмитрий

New Member

Re: Ask the expert: High CPU на Catalyst 4500

Транслирую вопрос с группы Вконтакте

http://vk.com/event34454465

"Какие показатели говорят о высокой загрузке коммутатора? Если не CPU, то что тогда? Я не видел еще коммутаторов, у которых высокие показатели процессора, это же не маршрутизатор в конце концов."

Cisco Employee

Re: Ask the expert: High CPU на Catalyst 4500

Добрый день.

Хотелось бы конечно немного уточнить вопрос - в нем идет речь о высокой нагрузке на процессор или в целом на коммутатор ?

Данная сессия посвящена именно первому случаю, т.е. когда большое количество пакетов начинают обрабатываться процессором. Архитектура коммутатора предполагает, что пакеты/кадры с данными должны обрабатываться не центральным процессором, а специализированными микросхемами (ASIC), что позволяет приблизиться к заявленной производителем производительности. Но бывают ситуации, когда пакеты начинают обрабатываться центральным процессором, что является нарушением и такие ситуации должны устраняться.

Понять насколько загружен процессор коммутатора можно с помощью команд show process cpu, show process cpu history.

Первая команда позволяет увидеть загрузку процессора за 5 секунд, одну минуту и 5 минут.

Switch#show processes cpu

CPU utilization for five seconds: 74%/1%; one minute: 73%; five minutes: 50%

Но так как кратковременная загрузка процессора на коммутаторе не является проблемой, то понять насколько нужен траблшутинг можно с помощью команды show process cpu history. С ее помощью вы можете посмотреть какова была загрузка процессора за последние 60 секунд, 60 минут и 72 часа. Если нагрузка на процессор близка к 100% в течении нескольких часов или суток, то это значит, что пора проводить поиск и устранение причин нагрузки на процессор.

Если же мы говорим о высокой нагрузке на сам коммутатор, то мы, помимо нагрузки на процессор, должны также рассматривать ситуацию на интерфейсах. Даже с помощью команды show interfaces мы можем увидеть какое количество пакетов/байтов обрабатывает тот или иной интерфейс, размер и заполненность очередей и количество сброшенных пакетов, что позволяет сделать выводы о том есть ли нарушения в работе с точки зрения интерфейсов.

3802
Просмотры
52
Полезный материал
18
Ответы