Avez-vous un compte?
Ce document discute des défaillances et des pannes de mémoire tampon sur le processeur de routage (RP).
Aucune spécification déterminée n'est requise pour ce document.
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
Les informations contenues dans ce document ont été créées à partir des périphériques d'un environnement de laboratoire spécifique. Tous les périphériques utilisés dans ce document ont démarré avec une configuration effacée (par défaut). Si votre réseau est opérationnel, assurez-vous que vous comprenez l'effet potentiel de toute commande.
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Le RP divise sa mémoire du processeur en groupes. Chaque groupe contient un certain nombre de blocs de mémoire de taille égale. Ces blocs de mémoire s'appellent les mémoires tampons.
Il y a six pools de mémoire tampon :
Mémoires tampons des octets Small?104
Mémoires tampons de l'octet Middle?600
Mémoires tampons de l'octet Big?1524
Mémoires tampons de l'octet VeryBig?4520
Mémoires tampons de l'octet Large?5024
Mémoires tampons de l'octet Huge?18024
Par exemple, si un processeur d'interface doit passer un paquet de 20 octets au RP, il ? demande ? pour une petite mémoire tampon. Si un processeur d'interface doit passer un paquet de 500 octets au RP, il demande une mémoire tampon moyenne, et ainsi de suite.
Remarque: Le processeur d'interface doit demander une mémoire tampon d'une certaine taille.
Quand le processeur d'interface demande une mémoire tampon, ceci se produit :
Si une mémoire tampon libre existe dans le groupe demandé, on accorde la mémoire tampon. Autrement, la demande génère a ? coup manqué ? et les essais d'algorithme de mémoire tampon à ? créez ? plus de mémoires tampons pour ce groupe.
Quand l'IOS n'obtient pas une petite mémoire tampon, il ne relâche pas le paquet. Il incrémente le contre- défectueux et tombe à la prochaine mémoire tampon de niveau, qui est la mémoire tampon moyenne et demande une mémoire tampon là. S'il n'obtient pas une mémoire tampon moyenne, il demande la prochaine mémoire tampon de niveau, qui est une grande mémoire tampon. Ce processus continue jusqu'à ce qu'il frappe le groupe de tampon énorme. S'il n'obtient pas un tampon énorme, alors il relâche le paquet.
Quand vous utilisez l'ensemble de caractéristiques IBM, un coup manqué génère presque toujours une panne.
Bien que les caractéristiques IBM puissent être commutées par processus, le code pour obtenir une mémoire tampon pour passer un paquet d'une interface au RP exécute au niveau de priorité d'interruption.
Des mémoires tampons ne peuvent pas être créées au niveau de priorité d'interruption ; par conséquent, un coup manqué aligne sa demande de plus de mémoires tampons au RP.
Puisqu'une mémoire tampon supplémentaire ne peut pas être créée sur place, la demande de mémoire tampon échoue, et le paquet est lâché.
Les défaillances de la mémoire tampon sont l'une des raisons les plus communes pour des pertes de paquets. Quand les pertes de paquets se produisent en raison de la défaillance de la mémoire tampon, ceci se produit :
Après une défaillance de la mémoire tampon, le RP a une demande en attente de créer plus de mémoires tampons de la taille appropriée pour le groupe particulier.
Tandis que le RP entretient la demande de mémoires tampons de création, il peut y avoir des pannes supplémentaires dans le groupe.
Le RP peut même pour créer plus de mémoires tampons, en raison des contraintes de mémoire dans le système quand les mémoires tampons supplémentaires sont exigées.
Essentiellement, l'exécution de mémoires tampons de création pourrait prendre plusieurs microsecondes, lesoù des paquets sont continuellement lâchés en raison de la pénurie de mémoire tampon.
En outre, si des mémoires tampons sont utilisées aussi rapidement qu'elles sont créées, le RP pourrait être forcé pour passer plus de temps sur la création de mémoire tampon que sur le traitement de paquets.
Ceci peut faire commencer le RP à relâcher des paquets tellement rapidement que la représentation dégrade et des sessions sont perdues.
Heureusement, car ce document discute, il n'est pas difficile l'identifier et le résoudre des problèmes de défaillance de la mémoire tampon. Cette sortie de commande de shows buffer affiche l'état actuel du routeur ? pools de mémoire tampon s :
dspu-7k#show buffersBuffer elements: 500 in free list (500 max allowed) 2370 hits, 0 misses, 0 createdPublic buffer pools:Small buffers, 104 bytes (total 16, permanent 10): 11 in free list (0 min, 10 max allowed) 1770 hits, 33 misses, 22 trims, 28 created 9 failures (0 no memory)Middle buffers, 600 bytes (total 90, permanent 90): 89 in free list (10 min, 200 max allowed) 590 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory)Big buffers, 1524 bytes (total 90, permanent 90): 90 in free list (5 min, 300 max allowed) 126 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory)VeryBig buffers, 4520 bytes (total 10, permanent 10): 10 in free list (0 min, 300 max allowed) 50 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory)Large buffers, 5024 bytes (total 10, permanent 10): 10 in free list (0 min, 30 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory)Huge buffers, 18024 bytes (total 2, permanent 0): 0 in free list (0 min, 13 max allowed) 2 hits, 2 misses, 0 trims, 2 created 0 failures (0 no memory)
Dans la sortie de shows buffer :
Le total identifie le nombre total de mémoires tampons dans le groupe, qui incluent les mémoires tampons utilisées et inutilisées.
La constante identifie le nombre permanent de mémoires tampons allouées dans le groupe. Ces mémoires tampons sont toujours dans le groupe et ne peuvent pas être équilibrées loin.
Dans la liste libre identifie le nombre de mémoires tampons actuellement dans le groupe qui sont disponibles pour l'usage.
La minute identifie le nombre minimal de mémoires tampons que le RP devrait tenter pour maintenir dans la liste libre :
Le paramètre minimum est utilisé pour anticiper la demande des mémoires tampons du groupe à un moment donné.
Si le nombre de mémoires tampons dans la liste libre tombe au-dessous de la valeur minimum, les tentatives RP de créer plus de mémoires tampons pour ce groupe.
Maximum-autorisé identifie le nombre maximal de mémoires tampons qui sont permises dans la liste libre :
Le paramètre maximum-autorisé empêche un groupe des mémoires tampons de monopolisation des lesquelles il n'a plus besoin. Il libère également cette mémoire de nouveau au système pour davantage d'usage.
Si le nombre de mémoires tampons dans la liste libre est plus grand que la valeur maximum-autorisée, le RP devrait tenter d'équilibrer des mémoires tampons du groupe.
Les hit identifie le nombre de mémoires tampons qui ont été demandées au groupe. Le compteur de hit fournit un mécanisme pour déterminer quel groupe doit rencontrer le plus très demandé pour des mémoires tampons.
Les coups manqués identifie le nombre de fois qu'une mémoire tampon a été demandées et le RP détecté dans ce que des mémoires tampons supplémentaires de groupe ont été exigées. En d'autres termes, le nombre de mémoires tampons dans la liste libre a chuté au-dessous du niveau minimum. Les coups manqués contre- représente le nombre de fois où le RP a été forcé pour créer les mémoires tampons supplémentaires.
Les équilibres identifie le nombre de mémoires tampons que le RP a équilibrées du groupe, quand le nombre de mémoires tampons dans la liste libre a dépassé le nombre de mémoires tampons maximum-autorisées.
Créé identifie le nombre de mémoires tampons qui ont été créées dans le groupe. Le RP crée des mémoires tampons dans ces situations :
Quand la demande des mémoires tampons a augmenté jusqu'à ce que le nombre de mémoires tampons dans la liste libre soit moins que les mémoires tampons minimum.
Un coup manqué se produit parce qu'il n'y a aucune mémoire tampon dans la liste libre.
Chacun des deux situations précédentes.
Les pannes les identifie quand l'IOS n'obtient pas une petite mémoire tampon, il ne relâche pas le paquet. Il incrémente le contre- défectueux et tombe à la prochaine mémoire tampon de niveau, qui est la mémoire tampon moyenne et demande une mémoire tampon là. S'il n'obtient pas une mémoire tampon moyenne, il demande la prochaine mémoire tampon de niveau, qui est une grande mémoire tampon. Ce processus continue jusqu'à ce qu'il frappe le groupe de tampon énorme. S'il n'obtient pas un tampon énorme, alors il relâche le paquet.
Aucune mémoire n'identifie le nombre de pannes provoquées par mémoire insuffisante pour créer les mémoires tampons supplémentaires.
Vous pouvez mettre en boîte examinez les caractéristiques de chaque groupe, pour déterminer quels groupes (le cas échéant) rencontrent des problèmes. Les paramètres pour un groupe peuvent être accordés pour permettre au routeur pour être plus bien préparés pour manipuler le chargement, si le groupe semble montrer ces caractéristiques :
Le nombre de coups manqués et crée l'incrément à un haut débit (comme pourcentage des hit).
Il y a uniformément un nombre peu élevé de mémoires tampons dans la liste libre.
Le nombre de pannes ou d'aucun incrément de mémoire.
Avec la commande de configuration de mémoires tampons, vous pouvez accorder ces paramètres pour chaque pool de mémoire tampon :
initiale ? Mémoires tampons provisoires qui sont allouées au rechargement du système.
maximum-libre ? Nombre maximal de mémoires tampon libres.
minute-libre ? Nombre minimal de mémoires tampon libres.
permanent ? Nombre de mémoires tampons permanentes.
Mémoires tampons initiales d'optimisation pour faciliter la rafale du trafic d'établissement de session après routeur rechargé.
buffers small initial 250
Ces mémoires tampons sont par la suite ? équilibré ? et retourné au système.
Les mémoires tampons initiales sont conçues pour manipuler l'établissement de session, qui est toujours commuté par processus.
Pendant l'établissement de session, le cache fastswitching (utilisé par d'autres protocoles d'artère) est rempli ; des mémoires tampons commutées par processus sont plus exigées et ne peuvent être retournées au système.
Pour accorder les mémoires tampons initiales peut ne pas être la solution correcte pour l'ensemble de caractéristiques IBM, parce que presque tous les paquets (après établissement de session) sont commutés par processus et exigent bufferiser supplémentaire de toute façon.
Remarque: Pour les caractéristiques commutées par processus IBM, vous devriez accorder les mémoires tampons permanentes plutôt qu'accordent les mémoires tampons initiales provisoires.
Accordez les mémoires tampons maximum-libres de sorte que la valeur soit égale ou plus grande qu'aux mémoires tampons de constante. Si toutes les mémoires tampons permanentes sont dans la liste libre, alors le RP ne devrait pas essayer d'équilibrer les mémoires tampons permanentes. Maximum-libre peut être utilisé pour s'assurer que des mémoires tampons inutilisées qui sont créées pendant des rafales irrégulières sont retournées à la mémoire système.
buffers small max-free 175buffers small permanent 125
Accordez les mémoires tampons minute-libres de sorte que la valeur représente le nombre minimal prévu de mémoires tampons exigées à tout moment. Minute-libre peut être utilisé pour anticiper des états de pénurie de mémoire tampon et pour s'assurer qu'un nombre minimal de mémoires tampons sont toujours disponible.
buffers small min-free 50
Accordez les mémoires tampons permanentes de sorte que la valeur représente le nombre estimé de mémoires tampons exigées pour le traitement normal.
buffers small permanent 125
Des mémoires tampons permanentes sont utilisées pour faciliter les conditions requises de tampon normal (rafales fréquentes y compris) du routeur. La détermination des conditions requises de tampon normal est un processus interactif, où la sortie de show buffer devrait afficher toutes les mémoires tampons utilisées dans un groupe à un moment donné. Des mémoires tampons permanentes devraient être accordées en ce qui concerne à « toutes les » mémoires tampons cohérentes exigées. Quand vous accordez les mémoires tampons permanentes, vous devriez se concentrer sur la réduction de crée et l'élimination des coups manqués et des pannes.
Il y a deux autres commandes show que vous pouvez employer pour identifier des problèmes avec l'allocation de mémoire tampon :
affichez l'identifiant d'interface d'interfaces
show source-bridge
Cette exposition relie l'exemple de sortie de commande d'identifiant d'interface inclut un compteur pour aucune mémoire tampon :
dspu-7k#show interfaces channel 4/2Channel4/2 is up, line protocol is up Hardware is cxBus IBM Channel MTU 4472 bytes, BW 98304 Kbit, DLY 100 usec, rely 255/255, load 1/255 Encapsulation CHANNEL, loopback not set, keepalive not set Virtual interface Last input 0:00:04, output 0:00:04, output hang never Last clearing of "show interface" counters never Output queue 0/40, 0 drops; input queue 0/75, 8 drops 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 646 packets input, 27760 bytes, 8 no buffer Received 0 broadcasts, 0 runts, 0 giants 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 328 packets output, 16959 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets, 0 restarts 0 output buffer failures, 0 output buffers swapped out
Dans l'exposition relie la sortie de commande d'identifiant d'interface :
Le compteur hors tampon incrémente quand l'interface n'obtient pas une mémoire tampon pour un paquet entrant.
Le compteur de mémoire tampon et de baisses (file d'attente d'entrée) n'incrémente pas quand l'interface n'obtient pas une mémoire tampon pour un paquet entrant.
Un compteur hors tampon qui incrémente dans l'exposition relie des corrélations de sortie aux coups manqués contre- que des incréments dans la sortie de shows buffer. Le pool de mémoire tampon approprié peut être accordé.
Cet exemple de sortie de commande de show source-bridge inclut une interface contre- pour des commandes de puissance, quand le par la source pont (SRB) est configuré pour l'interface :
dspu-7k#show source-bridgeLocal Interfaces: receive transmit srn bn trn r p s n max hops cnt:bytes cnt:bytes dropsCh4/2 666 1 99 * f 7 7 7 652:26020 6:266 0Global RSRB Parameters: TCP Queue Length maximum: 100Ring Group 99: This TCP peer: 150.10.20.2 Maximum output TCP queue length, per peer: 100 Peers: state bg lv pkts_rx pkts_tx expl_gn drops TCP TCP 150.10.20.1 open *3 261 266 0 0 0 TCP 150.10.20.2 - *3 0 0 0 0 0 Rings: bn: 1 rn: 888 locvrt ma: 4000.7000.fff1 Buff Ring888 fwd: 0 bn: 1 RN: 666 local ma: 4000.0c48.2e80 Channel4/2 fwd: 261 bn: 1 RN: 88 remote ma: 4000.4000.fff1 TCP 150.10.20.1 fwd: 322 bn: 1 RN: 250 remote ma: 4000.300f.7c09 TCP 150.10.20.1 fwd: 0Explorers: ------- input ------- ------- output ------- spanning all-rings total spanning all-rings totalCh4/2 0 0 0 0 1 1 Local: fastswitched 0 flushed 0 max Bps 256000 rings inputs bursts throttles output drops Ch4/2 0 0 8 0
Dans la sortie de commande de show source-bridge :
Les commandes de puissance parent des incréments quand l'interface n'obtient pas une mémoire tampon pour un paquet entrant.
Les commandes de puissance ripostent que les incréments dans les corrélations de sortie de commande d'interfaces d'exposition à l'des coups manqués ripostent que des incréments dans la sortie de commande de shows buffer. Le pool de mémoire tampon approprié peut être accordé.