Comment dépanner high dataplane CPU
Symptom
A le nombre de facteurs peut provoquer une hausse ou une augmentation continue des processeurs de l’avion de données : une augmentation soudaine due à la mise en œuvre d’un nouveau service ou d’une nouvelle ressource, ou une accumulation au fil du temps due à l’ajout de réseaux connectés, de segments et d’hôtes. Ces facteurs et plus encore peuvent entraîner une augmentation du taux de paquets, l’utilisation du tampon de paquets, ou une énorme quantité de nouvelles connexions par seconde qui conduisent l’avion de CPU données à atteindre un niveau critique.
Apprenez à dépanner dataplane élevé CPU . Cet article montre quelques façons de vérifier la charge réelle de l’avion de données et aider à déterminer l’impact potentiel sur votre réseau.
Il est important de comprendre l’impact de l’avion à données élevées : une utilisation élevée des avions de données peut ne pas présenter de source immédiate de préoccupation, mais le fait d’être CPU conscient de ce qui cause des CPU CPU conséquences élevées et possibles vous aidera à réagir de façon appropriée.
Plusieurs facteurs qui doivent être identifiés avant d’agir :
- Certains, tous, ou pas de trafic à travers les firewall touchés?
- Utilisateurs connaissent une latence élevée, et dans l’affirmative, latence affecte tout le trafic ou juste certaines applications ?
- Si les questions sont déclarées, sont ces rapports qui coïncident avec des périodes de la journée, à intervalles réguliers, ou à des moments totalement aléatoires ?
La première étape consiste à isoler l’endroit où le problème de performance se produit :
- Plan de données ( DP ) CPU
- Tampons de paquets
- Session
- Plan de gestion ( MP )
Resolution
Comment identifier l’avion de données élevé CPU
Lorsqu’un client signale un problème de performances, générer un fichier de support technique pendant que le problème se produit. Recherchez la chaîne « ---panio » dans le journal de suivi dp (ces informations sont enregistrées toutes les 10 minutes) ou exécutez la commande de moniteur de ressources en cours d’exécution de CLI l’utilisation des ressources pour DP afficher.
afficher le moniteur de ressources en cours d’exécution
Cette commande peut être utilisée pour examiner l’utilisation de l’avion CPU de données. Ajouter un opérateur de temps afin de tenir compte d’un calendrier que vous souhaitez examiner.
- « seconde » montre les 60 dernières secondes CPU d’utilisation par seconde par incréments
- « minute » montre les 60 dernières minutes par incréments de minute et ainsi de suite
- Si aucun opérateur de temps n’est utilisé, toutes les vues figureront dans une longue sortie
> montrent
l’exécution d’un moniteur de ressources > jours par jour statistiques de surveillance > heure par heure
statistiques de surveillance > entrées-arriérés
montrent des statistiques > minute Statistiques de surveillance par minute
> deuxième statistiques de surveillance par seconde
> semaine Statistiques de surveillance par semaine
La sortie réelle ressemblera à cela, mais peut différer légèrement en fonction de la quantité d’avions de données et de cœurs de votre système a.
> montrent l’exécution de ressources-moniteur
DP dp0:
Ressources de surveillance des données d’échantillonnage (par seconde) :
Cette première section montre CPU l’utilisation par les processus en cours d’exécution sur l’avion de données
CPU échantillonnage par groupe:
flow_lookup: 0%
flow_fastpath: 0%
flow_slowpath: 0%
flow_forwarding: 0%
flow_mgmt: 0%
flow_ctrl: 1%
nac_result: 0% flow_np :
0% dfa_result :
0% module_internal :
0% aho_result :
0% zip_result :
0% pktlog_forwarding :
0%
lwm : 0%
flow_host : 1%
Cette partie de la sortie montre l’utilisation de noyaux individuels sur l’avion de données.
De nombreux noyaux dépassant régulièrement 75 % justifient une enquête.
CPUcharge (%) during last 60 seconds:
core 0 1 2 3 4 5 6 7 8 9 10 11
0 39 47 38 46 73 81 73 81 82 88 83
0 39 46 38 45 73 82 73 82 82 89 82
0 39 46 39 45 73 81 73 81 83 88 83
0 38 52 37 50 71 81 71 80 82 98 82
0 40 46 39 45 74 82 74 82 83 89 83
0 40 50 39 49 74 85 74 84 83 90 83
0 39 46 38 45 72 81 72 81 81 88 81
0 42 52 41 50 75 86 75 86 84 91 84
0 42 76 79 85 75 10075 100100100 85 >>> indicates actual highCPU
0 44 51 43 50 78 85 78 86 86 91 86
0 42 51 41 50 76 86 76 86 85 92 85
0 43 53 43 52 77 89 77 89 86 93 86
0 38 46 37 45 71 81 72 81 81 88 81
0 42 50 41 50 76 85 76 85 85 90 85
... coupe pour la brièveté Cette
section montre l’utilisation de la table de session, qui est le nombre maximum de sessions actives prises en charge par la plate-forme. Toute valeur supérieure à 80% justifie une enquête.
Utilisation des ressources (%) pendant les 60 dernières secondes:
session:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Les 3 sections suivantes affichent l’utilisation du tampon de paquets.Les tampons de paquets sont utilisés pour s’assurer qu’aucun paquet n’est perdu alors qu’un paquet précédent est encore traité par un noyau ou un processus. Toute valeur supérieure à 80 % doit être étudiée.
tampon paquet:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 paquet
descripteur:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0
descripteur de paquets (sur puce):
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2
Choses à vérifier dans la sortie:
- Vérifiez la CPU charge au cours des 60 dernières secondes. Si un nombre est à ou près de 100, alors élevé CPU est probablement la cause du problème de performance.
- Vérifiez les sections « tampon de paquets » et « descripteur de paquets ». Si un nombre est à ou près de 100, alors le problème est probablement causé par la manque de tampons de paquets.
- Consultez la section session. Si un nombre est proche ou supérieur à 80, alors le problème de performance est très probablement lié à la session.
Plusieurs commandes sont disponibles qui peuvent aider à déterminer pourquoi certaines mesures sont au-dessus du seuil dans le moniteur de ressource :
afficher les infos de session
Extrayant toutes les données pertinentes au nombre de sessions prises en charge, combien sont actuellement actives et vous informeront sur le taux de paquets, la nouvelle connexion établir le taux et le débit. Si l’un de ces paramètres est exceptionnellement élevé, ils peuvent provoquer l’élévation de CPU l’avion de données.
> Afficher les infos de session
target-dp: *.dp0 -------------------------------------------------------------------------------- Nombre de
sessions prises en charge: 262142 Nombre de
sessions < If this figure rises to the level of the supported sessions,
actives: 3 Nombre de sessions TCP actives: 0 la plate-forme atteint la capacité maximale.
Nombre de UDP sessions actives: 1
Nombre de sessions ICMP actives: 0
Nombre de sessions BCAST actives: 0
Nombre de sessions MCAST actives: 0
Nombre de sessions de prédiction actives: 0
Utilisation de la table de session: 0% Nombre de sessions créées depuis
le démarrage: 332481
Taux de paquets: 28/s Un taux de paquets
inhabituel et soudain élevé pourrait indiquer une attaque DoS. Débit : 13 kbps
Nouvelle connexion établir le taux : 0 cps -------------------------------------------------------------------------------- Délai
d’attente de session
Si les valeurs des délais d’attente sont trop agressives ou trop détendues, le système pourrait manquer de ressources.
TCP délai d’attente par défaut : délai d’attente de la session de 3600 secondes avant reçu : délai d’attente de la session de 5 secondes avant poignée de main à trois : 10 secondes de temps mort à
TCP SYN-ACK
TCP
TCP mi-séance : délai d’attente de la session de 120 secondes
TCP en TIME_WAIT : session de 15 secondes délai
TCP d’attente pour non vérifié : délai d’attente par défaut de RST 30 secondes : délai d’attente par défaut de
UDP
ICMP 30 secondes : 6 secondes autre
délai IP d’attente par défaut : 30 secondes
délai d’attente de session Captive Portal : délai d’attente de la session de 30 secondes dans l’état de rejet
:
TCP 90 secondes, UDP : 60 secondes, autres IP protocoles: 60 secs
-------------------------------------------------------------------------------- Session accéléré
vieillissement: Vrai Si le vieillissement
accéléré a été désactivé, certaines sessions peuvent rester actives dans la table de session
plus longtemps que nécessaire et prendre des ressources.
Seuil de vieillissement accéléré : 80 % du facteur
d’échelle d’utilisation : 2 configuration de session -------------------------------------------------------------------------------- Si l’un d’eux a été désactivé pour dépannage et n’est pas remis en état, ils X
peuvent consommer des ressources supplémentaires
pour
inspecter les paquets malformés qui seraient
autrement jetés.
TCP - rejeter le SYN non-premier paquet: Déchargement
Hardware de session vrai: True
IPv6 pare-feu: True
Strict / TCP IP checksum: True
ICMP Unreachable Packet Rate: 200 pps
-------------------------------------------------------------------------------- Application
ruisselant paramètres de balayage:
Timeout pour déterminer l’application ruisselant: Seuil d’utilisation des ressources de 10 secondes
pour commencer l’analyse : facteur d’échelle de balayage de 80 % par rapport au vieillissement
régulier : 8 -------------------------------------------------------------------------------- Comportement
de session lorsque la limite de ressources est atteinte : drop Ceci indique le comportement du moment où il a
atteint sa limite extrême
firewall
d’épuisement des ressources.
--------------------------------------------------------------------------------
pcap token bucket rate : 10485760
-------------------------------------------------------------------------------- Max en attente de
paquets mcast en file d’attente par session : 0
--------------------------------------------------------------------------------
déboguer les statistiques de pool dataplane
Renvoie l’état de tous les tampons utilisés par le système et leur statut.
- Le nombre à gauche indique combien tampon est toujours disponible
- Le nombre sur la droite indique la taille totale
- Si le nombre sur la gauche tombe à 0, la mémoire tampon est épuisé
> dataplane statistiques de pool de débogage
Hardware Pools
[ 0] Tampons de paquets : 57223/57344 0x8000000030c00000
[ 1] Entrées de file d’attente de travail : 229315/229376 0x8000000037c00000 [
2] Tampons de sortie : 1007/1024 0x800000000fc00000
[ 3] DFA Résultat : 3995/4000 0x8000000039800000
[ 4] Tampons de mise à jour : 4096/4096 0x8000000039be8000
[ 5] PAN_FPA_LWM_POOL : 1024/1024 0x800000000fd00000
[ 6] ZIP Commandes : 1023/1024 0x800000000fd40000
[ 7] PAN_FPA_BLAST_PO : 1024/1024 0x800000000ff40000
Software Pools
[ 0] software packet buffer 0 ( 512): 32767/32768 0x8000000043b2a680
[ 1] software packet buffer 1 ( 1024): 32768/32768 0x8000000044b4a780
[ 2] software packet buffer 2 ( 2048): 81920/81920 0x8000000046b6a880
[ 3] software packet buffer 3 (33280): 20480/20480 0x8000000050bba980
[ 4] software packet buffer 4 (66048): 304/304 0x80000000795cea80
[ 5] Shared Pool 24 ( 24): 560000/560000 0x800000007a8f6780
[ 6] Shared Pool 32 ( 32): 530000/530000 0x800000007b7eaa80
[ 7] Shared Pool 40 ( 40): 70000/70000 0x800000007ca1cf00
[ 8] Shared Pool 192 ( 192): 1269999/1270000 0x800000007cd0cf80
[ 9] Shared Pool 256 ( 256): 140000/140000 0x800000008ba70880
[10] ZIP Results ( 184): 1024/1024 0x80000000a1827300
[11] CTD AV Block ( 1024): 32/32 0x80000000be43d380
[12] Regex Results (11544): 8000/8000 0x80000000be466100
[13] SSH Handshake State ( 6512): 64/64 0x80000000c580c680
[14] SSH State ( 3248): 512/512 0x80000000c5872480
[15] TCP host connections ( 176): 15/16 0x80000000c5a08e80
Voir l’établissement delta filtre global compteur Oui
Renvoie, à partir de la deuxième fois que la commande est émise, un instantané des compteurs mondiaux déclenchés au cours de la période entre l’itération actuelle et précédente, et pourrait exposer un nombre inhabituel de paquets jetés.
> Show Counter global filtre Delta Oui
Compteurs mondiaux :
Temps écoulé depuis le dernier échantillonnage : 2,981 secondes
description de l’aspect de la catégorie de
gravité de la valeur du nom -------------------------------------------------------------------------------- pkt_recv
89 29 paquets de paquets info pktproc
reçus pkt_recv_zero 87 29 paquets pktproc info reçus de QoS 0
pkt_sent 3 paquet d’info 1 paquets pktproc
transmis session_allocated 10 sessions de ressources de session d’information
allouées session_freed 10 sessions de ressources de session d’information
libérées session_installed 10 sessions de ressources de session d’information
installées flow_arp_pkt_rcv 83 27 paquet d’arp de flux d’informations ARP les paquets reçus flow_host_pkt_rcv
2 0 paquets de mgmt de flux d’information reçus
de l’avion de commande flow_host_pkt_xmt 2 0 paquets de mgmt de flux d’information transmis au
plan de commande flow_host_service_allow 2 0 mgmt de flux d’information session de gestion d’appareil
ont permis appid_ident_by_icmp 1 0 info appid pktproc Application identifiée par type icmp
dfa_sw 2 0 info dfa pktproc Le nombre total de dfa match à l’aide
d’un logiciel aho_sw 10 info aho pktproc L’utilisation totale AHO
du logiciel pour ctd_ pkt_slowpath 2 0 info ctd pktproc Packets traités par slowpath
pkt_flow_np 87 29 info packet resource Packets entré module flow étape np
pkt_flow_host 2 0 info paquets de ressources paquets entrés module flow étape
hôte --------------------------------------------------------------------------------
Compteurs total montré: 16
--------------------------------------------------------------------------------
Quelques compteurs communs ont expliqué :
comptoir | Description |
---|---|
pkt_recv | paquet reçu |
session_allocated | session allouer |
flow_ipfrag_recv | ipfrag taux de recevoir |
dfa_sw | dfa correspondant par sw |
dfa_fpga | dfa correspondant par fpga |
ctd_pkt_slowpath | pkt traité par slowpath ctd |
aho_sw | aho par sw |
aho_fpga | aho par fpga |
log_traffic_cnt | nombre de journaux de trafic |
flow_fwd_l3_ttl_zero | paquets supprimés: IP TTL |
fpga_pkt | pkt tenir par demande fpga. Remarque : il ne s’agit pas d’un compteur cumulatif, mais représente le nombre de paquets actuellement détenus en FPGA attente. |
Voir la session statistiques système
Affiche les valeurs agrégées de débit et de débit de tous les dataplanes d’une manière de tableau de bord en direct, qui se actualise automatiquement
Statistiques du système : (« q » pour arrêter de fumer, « h » pour obtenir de l’aide)
Device is up : 0 jour 2 heures 34 minutes 57 sec
Débit des paquets : 32/s
Débit : 92 Kbps
Sessions actives totales : 14
Sessions actives : TCP 8 Sessions
actives : UDP 4 Sessions
ICMP Actives : 2
Basculer pour afficher les « 20 meilleures applications » en appuyant sur « a » et retour en appuyant sur « s »
Top 20 des statistiques d’application: ('q' pour arrêter, 'h' pour obtenir de l’aide)
Système virtuel: vsys1
sessions d’application paquets octets
-------------------------------- ---------- ------------ ------------
ssl 349 47051 53368023
firefox-update 4 32503 31679603
google-base 57 19879 17687367
ms-update 3 0 2513 2413399
tor 1 715 710161
web-browsing 60 1140 588357
ping2920 5840 572320
windows-push-notifications 57 819 2667 37
apt-get 6 662 260149
dns 728 1484 185056
dhcp 124 248 86800
ms-spynet 3 71 45382
ocsp 9 215 33311
google-mise à jour 2 28 8624
ntp 45 90 8100
ipv6 2 64 5248
gorgée 5 5 2283
ldap 8 9 2241
donnéesinsuffisantes 5 13 780
icmp 6 6 520
Il est également important de noter que le type de trafic et la complexité de la configuration peuvent également ajouter à CPU l’utilisation. Par conséquent, il est important d’examiner le modèle de trafic pour comprendre l’application potentielle à l’origine de CPU l’utilisation élevée.
Plan de gestion
Vérifiez l’utilisation des ressources de l’avion de gestion soit en recherchant « --- haut » dans le mp-monitor.log ou en exécutant la commande de ressources système d’exposition à partir de la CLI . Voici un exemple de sortie de cette commande:
> de système de spectacle
top - 03:40:57 en hausse de 20 min, 0 utilisateurs, moyenne de charge: 0,00, 0,01, 0,03
Tâches: 116 total, 1 course, 115 dormir, 0 arrêté, 0 zombie
Cpu(s): 1,6% nous, 1,3%sy, 0,0%ni, 96,2%id, 0,5%wa, 0,0%hi, 0,4%si, 0,0%st
Mem: 3635080k total, 2327864k utilisé, 1307216k libre, tampons 37772k
Swap: 2007992k total, 0k utilisé, 2007992k gratuit, 1871932k mis en cache
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1837 racine 15 -5 18036 3508 2032 S 8 0,1 0:35.23 sysd
1 racine 20 0 1768 560 488 S 0 0,0 0:00.75 init
2 racine 20 0 0 0 S 0 0 0.0 0:00.00 kthreadd
3 racine RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
Voici des indications que l’utilisation des ressources sur le plan de gestion peut causer des problèmes.
- %wa sur la CPU ligne est élevé, ce qui indique que le plan de gestion est en attente à io (en swap et disque lié).
- La mémoire gratuite sur la ligne Swap est élevée.
- CPU pour le devsrvr, mgmtsvr, et les processus appweb sont élevés.
Analyse du modèle de trafic
Si les modèles de trafic sont la cause présumée du problème de performances, demandez des captures externes de paquets du trafic réseau auprès du client. Il n’est pas recommandé d’effectuer la capture firewall de lui-même car il peut ne pas montrer tout le trafic, surtout si le trafic est déchargé.