La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento vengono descritti i sintomi e le possibili cause di un errore di allocazione della memoria (MALLOCFAIL) e viene spiegato come risolvere questi problemi.
Nessun requisito specifico previsto per questo documento.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
Tutte le versioni del software Cisco IOS®
Tutti i router Cisco
Nota: questo documento non è valido per gli switch Cisco Catalyst che usano le piattaforme CatOS o MGX.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Un errore di allocazione della memoria indica:
Il router ha utilizzato tutta la memoria disponibile (in modo temporaneo o permanente), oppure
La memoria è stata frammentata in parti così piccole che il router non è in grado di trovare un blocco utilizzabile disponibile. Ciò può verificarsi con la memoria del processore (utilizzata dal sistema operativo Cisco Internet [Cisco IOS]) o con la memoria del pacchetto (utilizzata dai pacchetti in entrata e in uscita).
I sintomi di errore di allocazione della memoria includono, tra l'altro:
Messaggio della console o del registro: "%SYS-2-MALLOCFAIL: allocazione di memoria di 1028 byte non riuscita da 0x6015EC84, processore del pool, allineamento 0"
Sessioni Telnet rifiutate
Il comando show processor memory viene visualizzato indipendentemente dal comando digitato su una console
Nessun output da alcuni comandi show
Messaggi di memoria insufficiente
Viene visualizzato il messaggio della console "Impossibile creare EXEC - nessuna memoria o troppi processi".
Router spento, nessuna risposta dalla console.
Quando la memoria di un router è insufficiente, in alcuni casi non è possibile connettersi al router in modalità Telnet. A questo punto, è importante accedere alla porta della console per raccogliere i dati per la risoluzione dei problemi. Quando si collega la porta della console, tuttavia, è possibile verificare quanto segue:
%% Unable to create EXEC - no memory or too many processes
Se viene visualizzato il messaggio precedente, la memoria disponibile non è sufficiente per consentire una connessione alla console. Per consentire l'acquisizione dei dati tramite la console, è possibile eseguire alcune operazioni. Se si aiuta il router a liberare memoria, la console può rispondere ed è possibile acquisire i dati necessari dal router per la risoluzione dei problemi.
Nota: se il protocollo Border Gateway Protocol (BGP) è configurato sul router, è possibile fare riferimento a Raggiungere il routing ottimale e ridurre il consumo di memoria BGP per ridurre il consumo di memoria relativo a questo processo.
Di seguito vengono riportati i passaggi da eseguire per acquisire i dati quando la porta della console è in condizioni di memoria molto bassa:
Scollegare i cavi LAN e WAN dalle interfacce del router. In questo caso, il router può interrompere il passaggio dei pacchetti.
Ricontrolla la console. È possibile ottenere una risposta ed eseguire i comandi? Dopo alcuni istanti, la memoria disponibile deve essere sufficiente per consentire alla console di rispondere.
Raccogliere le informazioni necessarie dalla modalità di esecuzione privilegiata (n. router). È necessario raccogliere almeno l'output completo di questi comandi: show memory allocating-process totals (o show memory summary se show memory allocating-process totals non è disponibile), show logging e, se possibile, show technical-support .
Dopo aver raccolto i dati necessari, riconnettere tutti i collegamenti LAN e WAN e continuare a monitorare l'utilizzo della memoria del router.
Quando si esegue un comando show logging, è necessario visualizzare qualcosa di simile a quanto riportato di seguito:
%SYS-2-MALLOCFAIL: Memory allocation of [X] bytes failed from 0x6015EC84, pool [Pool], alignment 0 -Process= "[Process]" ipl= 6, pid=5
[X] = numero di byte che il router ha tentato di allocare, ma non è stata trovata memoria sufficiente
[Pool] indica se il problema riguarda la memoria del processore ('Pool Processor') o la memoria del pacchetto ('pool I/O'). I router high-end (serie 7000 e 7500) hanno i loro buffer nella memoria DRAM (Dynamic Random Access Memory) principale, quindi la mancanza di memoria del pacchetto può essere segnalata come "processore del pool". Le schede della serie 7200 e Versatile Interface Processor (VIP) possono inoltre segnalare errori nelle informazioni di controllo del protocollo del pool ('pool PCI')" per la memoria del pacchetto.
[Process] è il processo interessato dalla mancanza di memoria.
Le dimensioni della memoria non supportano l'immagine software Cisco IOS
Grande quantità di memoria utilizzata per processi normali o anomali
Problema di frammentazione della memoria o bug
Errore di allocazione della memoria nel processo = <livello interrupt>
Problemi noti
Input IP e rilevamento CiscoWorks UT
Memoria condivisa insufficiente per le interfacce
Memoria insufficiente nel router
In genere, gli errori MALLOCFAIL sono causati da un problema di protezione, ad esempio un worm o un virus che funziona nella rete. Questa condizione si verifica in particolare se non sono state apportate modifiche recenti alla rete, ad esempio un aggiornamento del router Cisco IOS. In genere, una modifica della configurazione, ad esempio l'aggiunta di righe agli elenchi degli accessi, può ridurre gli effetti di questo problema. La pagina Consigli e avvisi sulla sicurezza dei prodotti Cisco contiene informazioni sul rilevamento delle cause più probabili e delle soluzioni specifiche.
Per ulteriori informazioni, fare riferimento a:
Per prima cosa, controllare nell'area Download Software le dimensioni minime della memoria per il set di funzionalità e la versione in esecuzione. Accertatevi che sia sufficiente. I requisiti di memoria riportati in Cisco.com sono le dimensioni minime consigliate per il corretto funzionamento del router nella maggior parte delle reti aziendali. I requisiti di memoria effettivi variano in base a protocolli, tabelle di routing e modelli di traffico.
Nota: solo gli utenti Cisco registrati possono accedere alle informazioni e agli strumenti Cisco interni.
Se il dispositivo Cisco restituisce i risultati di un comando show memory allocating-process totals, di un comando show memory summary o di un comando show technical-support (in modalità abilitazione), è possibile usare Output Interpreter per visualizzare i potenziali errori e correggerli.
Nota: solo gli utenti Cisco registrati possono accedere alle informazioni e agli strumenti Cisco interni.
Una perdita di memoria si verifica quando un processo richiede o alloca memoria e quindi dimentica di liberare (disallocare) la memoria al termine dell'operazione. Di conseguenza, il blocco di memoria è riservato finché il router non viene ricaricato. Con il tempo, sempre più blocchi di memoria vengono allocati da quel processo fino a quando non c'è memoria disponibile. In base alla gravità della situazione di memoria insufficiente a questo punto, l'unica opzione disponibile è ricaricare il router per renderlo nuovamente operativo.
Questo è un bug del sistema operativo Cisco Internet (Cisco IOS). Per liberarsene, aggiornare il software Cisco IOS versione 11.2(14) all'ultima versione della release train. Ad esempio, se si esegue il software Cisco IOS versione 11.2(14), aggiornare il software all'ultima immagine 11.2(x).
Se il problema persiste o non si desidera aggiornare il router, immettere il comando show processes memory a intervalli regolari in un determinato periodo di tempo (ad esempio, ogni qualche ora o giorno a seconda che si sia verificata una perdita rapida o lenta). Verificare se la memoria libera continua a diminuire e non viene mai restituita. La frequenza con cui la memoria libera scompare dipende dalla frequenza con cui si verifica l'evento che determina la perdita. Poiché la memoria non viene mai liberata, è possibile tenere traccia del processo che utilizza la memoria se si acquisiscono istantanee della memoria nel tempo. Tenere presente che i diversi processi allocano e annullano l'allocazione di memoria in base alle esigenze, in modo da poter individuare le differenze, ma man mano che la perdita di memoria continua, è necessario individuare un processo che consumi continuamente più memoria.
Nota: è normale che alcuni processi, ad esempio Border Gateway Protocol (BGP) o Open Shortest Path First (OSPF), utilizzino più di un megabyte di memoria, ma ciò non significa che stiano perdendo.
Per identificare il processo che consuma più memoria, confrontare la colonna Holding del comando show processes memory nell'intervallo di tempo. A volte è possibile notare chiaramente che un processo contiene diversi megabyte di memoria. A volte ci vogliono diverse istantanee per trovare il colpevole. Se è stata persa una quantità significativa di memoria, raccogliere un comando show memory allocating-process totals o show memory summary per ulteriori operazioni di risoluzione dei problemi. Quindi, contatta il Cisco Technical Assistance Center (TAC) e fornisci le informazioni raccolte, insieme a un riepilogo del supporto tecnico del router.
Lo strumento Output Interpreter consente di ricevere un'analisi del comando show memory allocating-process totals o dell'output di riepilogo show memory.
Nota: solo gli utenti Cisco registrati possono accedere alle informazioni e agli strumenti Cisco interni.
La tabella fornisce le prime tre righe dell'output del comando show memory summary:
Router>show memory summary Head Total (b) Used (b) Free (b) Lowest (b) Largest (b) Processor 60AB4ED0 5550384 2082996 3467388 3464996 3454608 I/O 40000000 16777216 1937280 14839936 14839936 14838908
Totale = la quantità totale di memoria disponibile dopo il caricamento dell'immagine del sistema e la creazione delle relative strutture di dati.
Utilizzato = la quantità di memoria attualmente allocata.
Libera = la quantità di memoria attualmente disponibile.
Minima = la quantità di memoria libera più bassa registrata dal router dall'ultimo avvio.
Più grande = il blocco di memoria libera più grande attualmente disponibile.
Il comando show memory allocating-process totals contiene le stesse informazioni delle prime tre righe del comando show memory summary.
Di seguito vengono riportate le informazioni che è possibile apprendere dall'output del comando show processes memory:
Router>show processes memory Total: 3149760, Used: 2334300, Free: 815460 PID TTY Allocated Freed Holding Getbufs Retbufs Process 0 0 226548 1252 1804376 0 0 *Initialization* 0 0 320 5422288 320 0 0 *Scheduler* 0 0 5663692 2173356 0 1856100 0 *Dead* 1 0 264 264 3784 0 0 Load Meter 2 2 5700 5372 13124 0 0 Virtual Exec 3 0 0 0 6784 0 0 Check heaps 4 0 96 0 6880 0 0 Pool Manager 5 0 264 264 6784 0 0 Timers 6 0 2028 672 8812 0 0 ARP Input 7 0 96 0 6880 0 0 SERIAL A' detect 8 0 504 264 7024 0 0 ATM ILMI Input 9 0 0 0 6784 0 0 ILMI Process 10 0 136 0 6920 0 0 M32_runts pring 11 0 136 0 6920 0 0 Call drop procs 12 0 340 340 12784 0 0 ATMSIG Timer 13 0 445664 442936 13904 0 0 IP Input 14 0 2365804 2357152 17992 0 0 CDP Protocol 15 0 528 264 7048 0 0 MOP Protocols 16 0 188 0 9972 0 0 IP Background 17 0 0 1608 6784 0 0 TCP Timer 18 0 5852116 0 14236 0 0 TCP Protocols
Allocate = la quantità totale di byte allocati dal processo dall'avvio del router.
Liberi = la quantità totale di byte rilasciati da questo processo.
In attesa = la quantità totale di byte attualmente contenuti in questo processo. Questa è la colonna più importante per la risoluzione dei problemi, in quanto mostra la quantità effettiva di memoria attribuita a questo processo. La memorizzazione non è necessariamente uguale alla differenza tra Allocato e Libero, in quanto alcuni processi allocano un blocco di memoria che viene successivamente restituito al pool libero da un altro processo.
Il processo *dead* non è un processo reale. È lì per rendere conto della memoria allocata nel contesto di un altro processo che è terminato. La memoria allocata a questo processo viene recuperata dal kernel e restituita al pool di memoria dal router stesso quando richiesto. Questo è il modo in cui Cisco IOS gestisce la memoria. Un blocco di memoria è considerato inattivo se il processo che lo ha creato è terminato (non più in esecuzione). Ogni blocco tiene traccia dell'indirizzo e del PID del processo che lo ha creato. Durante il conteggio periodico della memoria, se il processo individuato dall'utilità di pianificazione da un PID del blocco non corrisponde al processo memorizzato dal blocco, il blocco viene contrassegnato come inattivo.
Pertanto, la memoria contrassegnata come appartenente al processo *Inattivo* è stata allocata sotto il controllo di un processo che non è più in esecuzione. È normale avere una porzione significativa di memoria in uno stato di questo tipo. Di seguito è riportato un esempio:
La memoria viene allocata quando Network Address Translation (NAT) viene configurato durante una sessione Telnet. Tale memoria viene considerata nel processo Telnet ("Virtual Exec"). Una volta terminato questo processo, la memoria per la configurazione NAT è ancora in uso. Ciò viene mostrato con il processo *dead*.
È possibile vedere in quale contesto la memoria è stata allocata con show memory dead
nella colonna "Cosa":
Router#show memory dead Head Total(b) Used(b) Free(b) Lowest(b) Largest(b) I/O 600000 2097152 461024 1636128 1635224 1635960 Processor memory Address Bytes Prev. Next Ref PrevF NextF Alloc PC What 1D8310 60 1D82C8 1D8378 1 3281FFE Router Init 2CA964 36 2CA914 2CA9B4 1 3281FFE Router Init 2CAA04 112 2CA9B4 2CAAA0 1 3A42144 OSPF Stub LSA RBTree 2CAAA0 68 2CAA04 2CAB10 1 3A420D4 Router Init 2ED714 52 2ED668 2ED774 1 3381C84 Router Init 2F12AC 44 2F124C 2F1304 1 3A50234 Router Init 2F1304 24 2F12AC 2F1348 1 3A420D4 Router Init 2F1348 68 2F1304 2F13B8 1 3381C84 Router Init 300C28 340 300A14 300DA8 1 3381B42 Router Init
Se viene rilevata una perdita di memoria e il processo *Dead* sembra essere quello che consuma la memoria, includere una show memory dead
nelle informazioni fornite al Cisco TAC.
Questa è una delle cause più difficili da verificare. Il problema è caratterizzato da una grande quantità di memoria libera, ma da un piccolo valore nella colonna "Minima". In questo caso, un evento normale o anormale (ad esempio, una grande instabilità del routing) induce il router a utilizzare una quantità insolitamente elevata di memoria del processore per un breve periodo di tempo, durante il quale la memoria è esaurita. Durante questo periodo, il router segnala MALLOCFAIL. Può accadere che subito dopo, la memoria venga liberata e il problema scompaia (ad esempio, la rete si stabilizza). La carenza di memoria può anche essere dovuta a una combinazione di fattori, ad esempio:
una perdita di memoria che ha consumato una grande quantità di memoria, quindi un'instabilità di rete spinge la memoria libera a zero
la memoria del router non è sufficiente per iniziare, ma il problema viene rilevato solo durante un raro evento di rete.
Se il router non è stato riavviato, immettere il comando show memory allocating-process totals
(o show memory summary
se show memory allocating-process totals
non è disponibile) e osservate le prime tre righe. I messaggi di log possono fornire indicazioni sul processo che ha utilizzato molta memoria:
Se l'utilizzo di memoria di grandi dimensioni è dovuto a:
normale, la soluzione consiste nell'installare una maggiore quantità di memoria.
evento raro o anormale, risolvere il problema correlato. È possibile acquistare memoria aggiuntiva per future assicurazioni.
Questa situazione significa che un processo ha utilizzato una grande quantità di memoria del processore e quindi l'ha rilasciata completamente o in gran parte, lasciando frammenti di memoria ancora allocati da questo processo o da altri processi che hanno allocato memoria per tutto il problema. Se lo stesso evento si verifica più volte, la memoria può frammentarsi in blocchi molto piccoli, al punto che tutti i processi che richiedono un blocco di memoria più grande non riescono a ottenere la quantità di memoria necessaria. Ciò può influire sul funzionamento del router in quanto non è possibile connettersi al router e visualizzare un messaggio in caso di frammentazione insufficiente della memoria.
Questo problema è caratterizzato da un valore basso nella colonna "Largest" (inferiore a 20.000 byte) della show memory
ma un valore sufficiente nella colonna "Libero" (1 MB o più) o un'altra grande disparità tra le due colonne. Questa situazione può verificarsi quando la memoria del router è quasi esaurita, in quanto non è presente una routine di frammentazione in Cisco IOS.
Se si sospetta una frammentazione della memoria, chiudere alcune interfacce. In questo modo è possibile liberare i blocchi frammentati. Se questa operazione ha esito positivo, il funzionamento della memoria sarà normale e sarà sufficiente aggiungere altra memoria. Se la chiusura delle interfacce non risolve il problema, potrebbe trattarsi di un bug. Il modo migliore di procedere è contattare il rappresentante del supporto Cisco per ricevere le informazioni raccolte.
Questa situazione può essere identificata dal processo nel messaggio di errore. Se il processo è elencato come <livello di interrupt>, come nell'esempio seguente, l'errore di allocazione della memoria è causato da un problema software.
"%SYS-2-MALLOCFAIL: Memory allocation of 68 bytes failed from 0x604CEF48, pool Processor, alignment 0-Process=, ipl= 3"
Questo è un bug del sistema operativo Cisco Internet (Cisco IOS). È possibile usare Bug Toolkit per cercare un ID bug software corrispondente a questo problema. Dopo aver identificato il bug del software, eseguire l'aggiornamento a una versione del software Cisco IOS contenente la soluzione.
Nota: solo gli utenti Cisco registrati possono accedere alle informazioni e agli strumenti Cisco interni.
Gli elenchi degli accessi possono occupare molta memoria quando vengono utilizzati per singolo utente. Gli elenchi degli accessi sono troppo grandi per essere classificati come mini elenchi di controllo di accesso (ACL) e sono ora compilati come ACL turbo. Ogni volta che questo si verifica, il processo TACL deve avviare ed elaborare il nuovo ACL. Ciò può causare traffico autorizzato o rifiutato in base al tempo di compilazione e al tempo di elaborazione disponibile.
Gli ACL compilati devono essere inviati a XCM. Quando lo spazio disponibile è limitato e la memoria è in esecuzione, vengono visualizzati i messaggi della console e viene avviato il deframmentatore della memoria.
Per una soluzione temporanea:
Uso di ACL concisi, meno Application Control Engine (ACE) in grado di compilare come mini ACL e di ridurre il consumo di memoria e la potenza di elaborazione per la compilazione.
Uso di ACL predefiniti sul router a cui si fa riferimento tramite l'attributo filterID del raggio.
Quando un Route Processor (RP) 7000 avvia un'immagine da Flash, carica prima l'immagine ROM e quindi l'immagine flash in memoria. Il vecchio RP ha solo 16 MB di memoria e le versioni Enterprise del software Cisco IOS release successiva alla versione 11.0 sono più grandi di 8 MB se non compresse. Pertanto, quando si carica l'immagine dalla ROM e poi dalla memoria flash, la memoria può esaurirsi o frammentarsi durante il processo di avvio, in modo che il router abbia dei messaggi di errore relativi alla memoria.
La soluzione è abilitare Fast Boot dal registro di configurazione in modo che l'RP carichi solo un sottoinsieme minimo dell'immagine software Cisco IOS nella ROM, quindi carichi l'intero software Cisco IOS dalla memoria flash. Per abilitare l'avvio rapido, impostare il registro di configurazione su 0x2112. Ciò consente inoltre di velocizzare il processo di avvio.
Con la funzione UT Discovery di CiscoWorks, la quantità di memoria disponibile su alcuni router può diventare molto ridotta. Il comando show proc memory può indicare una quantità di memoria eccessiva per il processo "IP input". Si tratta di un caso particolare del problema Grande quantità di memoria utilizzata per processi normali o anormali per il processo di "input IP", che può anche causare un problema di frammentazione della memoria, se la condizione di memoria insufficiente causa la frammentazione della memoria.
La funzione di rilevamento dell'MTU determina l'invio da parte della stazione di gestione della rete di un comando ping per tutti gli IP di ciascuna subnet rilevata. I problemi di memoria sono causati dalla maggiore dimensione della cache a commutazione rapida IP sul router, in quanto vengono create nuove voci della cache per ogni nuova destinazione. Poiché la maschera utilizzata per le voci nella cache dipende da come viene eseguita la subnet, la presenza di un indirizzo con una maschera a 32 bit (ad esempio, un indirizzo di loopback) in una rete principale determina l'utilizzo di una maschera a 32 bit per tutte le voci della rete. Ciò comporta la creazione di un numero elevato di voci della cache e l'utilizzo di una grande quantità di memoria.
La soluzione migliore è disabilitare l'individuazione dell'UT. A tale scopo, eseguire la procedura seguente:
Visitare il sito Web all'indirizzo C:\Program Files\CSCOpx\etc\cwsi\ANIServer.properties.
Aggiungere UTPingSweep=0.
Riavviare ANI.
Ciò può causare la perdita di alcuni server finali o l'obsolescenza della tabella User Tracking (questo può essere un problema con un'altra applicazione Cisco chiamata User Registration Tool, che si basa su UT), ma non influisce su Campus Discovery, che utilizza solo il traffico SNMP. La commutazione CEF può anche migliorare questa situazione (con CEF, la cache IP viene creata dalla tabella di routing all'avvio). Per ulteriori informazioni sul CEF e sugli altri percorsi di switching disponibili, consultare il documento sulla scelta del percorso di switching del router migliore per la rete in uso.
Esistono molte altre applicazioni che possono determinare situazioni di memoria insufficiente simili. Nella maggior parte dei casi, la causa principale del problema non è il router, ma l'applicazione stessa. Normalmente è necessario essere in grado di prevenire tali tempeste di pacchetti controllando la configurazione dell'applicazione.
Alcuni router (ad esempio, serie 2600, 3600 e 4000) richiedono una quantità minima di memoria I/O per supportare alcuni processori di interfaccia.
Se la memoria condivisa del router è insufficiente, anche dopo un ricaricamento, è possibile rimuovere fisicamente le interfacce per risolvere il problema.
Sui router serie 3600, eseguire il comando di configurazione globale memory-size iomem i/o-memory-percentage
può essere utilizzato per riallocare la percentuale di DRAM da utilizzare per memoria I/O e memoria del processore. I valori consentiti per la percentuale di i/o-memoria sono 10, 15, 20 , 25 (valore predefinito), 30, 40 e 50 . Per la memoria I/O sono necessari almeno 4 MB di memoria.
Per risolvere questo problema, fare riferimento a:
Requisiti di memoria condivisa per i router 4000/4500/4700.
Se si dispone dell'output di un show buffers
comando o show technical-support
(in modalità abilitazione) dal dispositivo Cisco, è possibile utilizzare Output Interpreter per visualizzare i potenziali errori e correggerli.
Nota: solo gli utenti Cisco registrati possono accedere alle informazioni e agli strumenti Cisco interni.
Quando un processo termina con un buffer, questo deve liberare il buffer. Una perdita di buffer si verifica quando il codice dimentica di elaborare un buffer o dimentica di liberarlo dopo che è stato eseguito con il pacchetto. Di conseguenza, il pool di buffer continua a crescere man mano che un numero sempre maggiore di pacchetti viene bloccato nei buffer. È possibile identificare una perdita di buffer con show buffers
Alcuni pool di buffer pubblici devono essere di dimensioni anormalmente grandi con pochi buffer liberi. Dopo un ricaricamento, è possibile notare che il numero di buffer liberi non si avvicina mai al numero totale di buffer.
Lo strumento Output Interpreter consente di ricevere un'analisi del show buffers
uscita.
Nell'esempio seguente, vengono modificati i buffer Middle. OSPF (Open Shortest Path First) show buffers
Il comando indica che vengono utilizzati e non liberati circa 8094 buffer (8122 in totale meno 28 liberi):
Public buffer pools: Small buffers, 104 bytes (total 50, permanent 50): 50 in free list (20 min, 150 max allowed) 403134 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Middle buffers, 600 bytes (total 8122, permanent 200): 28 in free list (10 min, 300 max allowed) 154459 hits, 41422 misses, 574 trims, 8496 created Big buffers, 1524 bytes (total 50, permanent 50): 50 in free list (5 min, 150 max allowed) 58471 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, 100 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Large buffers, 5024 bytes (total 0, permanent 0) 0 in free list (0 min, 10 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Huge buffers, 18024 bytes (total 0, permanent 0): 0 in free list (0 min, 4 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory)
Questo è un bug del software Cisco IOS. Eseguire l'aggiornamento all'ultima versione della release train per risolvere i bug noti relativi alle perdite del buffer (ad esempio, se si sta eseguendo il software Cisco IOS versione 11.2(14), aggiornare l'immagine alla versione 11.2(x) più recente. Se l'operazione non riesce o non è possibile aggiornare il router, eseguire i comandi seguenti per il pool di problemi quando la memoria del router è insufficiente. Tramite questi comandi è possibile visualizzare ulteriori informazioni sul contenuto dei buffer:
show buffer old
mostra i buffer allocati di più di un minuto
show buffer pool
(small - middle - big - verybig - large - huge)
mostra un riepilogo dei buffer per il pool specificato
show buffer pool
(small - middle - big - verybig - large - huge) dump
mostra un dump esadecimale/ASCII di tutti i buffer in uso in un determinato pool.
Per ulteriori informazioni, fare riferimento a Risoluzione dei problemi di perdita del buffer.
Questo problema è specifico della serie 7500. Se la memoria "veloce" del router si esaurisce, è possibile utilizzare la memoria RAM dinamica (DRAM) principale. Non sono necessarie ulteriori azioni.
trying
per eliminare la voce di prefisso [IP_address]/[dec] (previsto [hex], ottenuto [hex])Il messaggio di errore IPFAST-4-RADIXDELETE: Error try to delete prefix entry [IP_address]/[dec] (EXPECTED [hex], got [hex]) (IPFAST-4-RADIXDELETE: Errore durante il tentativo di eliminare la voce del prefisso [IP_address]/[dec] (previsto [hex], ottenuto [hex])) indica che la tabella della cache di Cambio rapido router in memoria è danneggiata. Quando il router tenta di cancellare la tabella della cache durante il normale processo o clear ip cache
Se si immette il comando, il sistema non riesce a eliminare le voci a causa del danneggiamento della memoria. Quando il router non riesce a eliminare una voce di questo tipo, viene visualizzato il messaggio IPFAST-4-RADIXDELETE.
Per risolvere un problema di danneggiamento della memoria della tabella della cache, è necessario riavviare a freddo il router. Un riavvio può incidere nuovamente sulle strutture della memoria di sistema e consentire alla cache veloce di ricostruire senza danneggiamenti.
Motivo dell'errore %SYS-2-CHUNKEXPANDFAIL: impossibile espandere il pool di blocchi per la mappa di bit TACL. Nessun messaggio di errore relativo alla memoria disponibile indica che la memoria del processore non è sufficiente per espandere il pool di blocchi specificato. È possibile che sia causato da un processo che si comporta in modo anomalo.
Per ovviare al problema, è necessario acquisire periodicamente (in base alla frequenza del problema) l'output di questi comandi in modo da poter monitorare l'utilizzo della memoria del router:
show processes memory sorted
show memory statistics
show memory allocating-process totals
Attenersi alla procedura seguente:
Verificare i requisiti di memoria per la versione del software Cisco IOS o per il set di funzionalità in uso.
Se possibile, effettuare l'aggiornamento alla versione più recente del software Cisco IOS nella release train.
Verificare la presenza di una grande quantità di memoria utilizzata per processi normali o anormali. Se necessario, aggiungere ulteriore memoria.
Verificare se si tratta di una perdita o di una frammentazione (perdita di buffer su router di fascia alta).
Raccogliere le informazioni pertinenti e contattare il TAC.
Attenersi alla procedura seguente:
Controllare i requisiti di memoria condivisa (vedere Memoria condivisa insufficiente per le interfacce).
Se possibile, effettuare l'aggiornamento alla versione più recente del software Cisco IOS nella release train.
Determinare il pool di buffer interessato, raccogliere le informazioni pertinenti e contattare Cisco TAC.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
2.0 |
19-Jan-2023 |
Formato aggiornato, avvisi CCW fissi. Certificazione. |
1.0 |
02-Nov-2001 |
Versione iniziale |