In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
In diesem Dokument werden die Symptome und mögliche Ursachen eines Fehlers bei der Speicherzuweisung (MALLOCFAIL) beschrieben und es wird im Detail beschrieben, wie diese Probleme behoben werden können.
Es gibt keine spezifischen Anforderungen für dieses Dokument.
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
Alle Cisco IOS®-Softwareversionen
Alle Cisco Router
Hinweis: Dieses Dokument gilt nicht für Cisco Catalyst Switches, die CatOS- oder MGX-Plattformen verwenden.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle verstehen.
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
Speicherzuordnungsfehler bedeutet entweder:
Der Router hat den gesamten verfügbaren Speicher (vorübergehend oder dauerhaft) genutzt, oder
Der Speicher ist in so kleine Teile fragmentiert, dass der Router keinen verwendbaren verfügbaren Block finden kann. Dies kann mit dem Prozessorspeicher (der vom Cisco Internet Operating System [Cisco IOS] verwendet wird) oder mit dem Paketspeicher (der von eingehenden und ausgehenden Paketen verwendet wird) geschehen.
Symptome eines Fehlers bei der Speicherzuweisung sind u. a.:
Die Konsolen- oder Protokollmeldung: "%SYS-2-MALLOCFAIL: Fehler bei der Speicherzuweisung von 1028 Bytes aus 0x6015EC84, Pool Processor, alignment 0"
Abgelehnte Telnet-Sitzungen
Der Befehl show processor memory wird unabhängig von dem Befehl angezeigt, den Sie auf einer Konsole eingeben
Keine Ausgabe von einigen show-Befehlen
Meldungen "Nicht genügend Arbeitsspeicher"
Die Konsolenmeldung "EXEC konnte nicht erstellt werden - kein Speicher oder zu viele Prozesse"
Router hängt, keine Konsolenantwort
Wenn ein Router nicht über genügend Arbeitsspeicher verfügt, ist es in einigen Fällen nicht möglich, eine Telnet-Verbindung zum Router herzustellen. An diesem Punkt ist es wichtig, auf den Konsolenport zuzugreifen, um Daten für die Fehlerbehebung zu erfassen. Wenn Sie eine Verbindung zum Konsolenport herstellen, sehen Sie Folgendes:
%% Unable to create EXEC - no memory or too many processes
Wenn die vorherige Meldung angezeigt wird, ist nicht einmal genügend Arbeitsspeicher verfügbar, um eine Konsolenverbindung zu ermöglichen. Es gibt Schritte, die Sie durchführen können, um die Datenerfassung über die Konsole zu ermöglichen. Wenn Sie dem Router helfen, Speicher freizugeben, kann die Konsole reagieren, und Sie können dann die erforderlichen Daten vom Router zur Fehlerbehebung erfassen.
Hinweis: Wenn Border Gateway Protocol (BGP) auf dem Router konfiguriert ist, können Sie unter Erzielen eines optimalen Routings und Reduzieren des BGP-Speicherverbrauchs den mit diesem Prozess verbundenen Speicherverbrauch lesen.
Führen Sie die folgenden Schritte aus, um Daten zu erfassen, wenn sich der Konsolenport unter sehr niedrigen Speicherbedingungen befindet:
Trennen Sie die LAN- und WAN-Kabel von den Schnittstellen des Routers. Dies kann dazu führen, dass der Router keine Pakete mehr weiterleitet.
Überprüfen Sie die Konsole erneut. Sind Sie in der Lage, eine Antwort zu erhalten und Befehle auszuführen? Nach einigen Augenblicken muss genügend Arbeitsspeicher verfügbar sein, damit die Konsole reagieren kann.
Erfassen Sie die erforderlichen Informationen im privilegierten EXEC-Modus (Router-Nr.). Sie sollten mindestens die vollständige Ausgabe der folgenden Befehle sammeln: show memory allocations-process totals (oder show memory summary, wenn show memory allocations-process totals nicht verfügbar ist), show logging und, wenn möglich, show technical-support.
Nachdem Sie die erforderlichen Daten gesammelt haben, schließen Sie alle LAN- und WAN-Verbindungen wieder an, und überwachen Sie weiterhin die Speichernutzung des Routers.
Wenn Sie den Befehl show logging ausführen, müssen Sie Folgendes sehen:
%SYS-2-MALLOCFAIL: Memory allocation of [X] bytes failed from 0x6015EC84, pool [Pool], alignment 0 -Process= "[Process]" ipl= 6, pid=5
[X] = die Anzahl der Bytes, die der Router zuteilen wollte, aber nicht genügend freien Speicher finden konnte
[Pool] gibt an, ob der Prozessorspeicher ('Pool-Prozessor') oder der Paketspeicher ('Pool-I/O') betroffen ist. High-End-Router (Serie 7000, 7500) haben ihre Puffer im DRAM (Dynamic Random Access Memory), sodass ein Mangel an Paketspeicher als "Pool-Prozessor" gemeldet werden kann. Karten der Serie 7200 und VIP-Karten (Versatile Interface Processor) können auch Fehler in Pool-Protokollsteuerungsinformationen ("Pool PCI") für den Paketspeicher melden.
[Prozess] ist der Prozess, der durch den Mangel an Speicher beeinträchtigt wurde.
Die Speichergröße unterstützt das Cisco IOS Software-Image nicht.
Große Menge an Arbeitsspeicher für normale oder ungewöhnliche Prozesse
Speicherfragmentierungsproblem oder Fehler
Fehler bei der Speicherzuweisung am Prozess = <Unterbrechungsstufe>
Bekannte Probleme
Bekanntes 70x0-Problem beim Laden großer Cisco IOS-Software aus Flash oder Netboot
IP-Eingang und CiscoWorks UT Discovery
Nicht genügend gemeinsam genutzter Speicher für die Schnittstellen
Router mit wenig schnellem Speicher
Häufig werden MALLOCFAIL-Fehler durch ein Sicherheitsproblem verursacht, z. B. durch einen Wurm oder einen Virus, der in Ihrem Netzwerk operiert. Dies ist besonders wahrscheinlich der Grund, wenn in letzter Zeit keine Änderungen am Netzwerk vorgenommen wurden, z. B. ein Cisco IOS-Upgrade für den Router. In der Regel kann eine Konfigurationsänderung, z. B. das Hinzufügen zusätzlicher Leitungen zu den Zugriffslisten, die Auswirkungen dieses Problems mildern. Die Seite Cisco Product Security Advisories and Notices enthält Informationen zur Erkennung der wahrscheinlichsten Ursachen und der am häufigsten auftretenden Problemumgehungen.
Weitere Informationen finden Sie unter:
Überprüfen Sie zunächst die Download Software Area auf die minimale Speichergröße für das Feature-Set und die Version, die Sie ausführen. Vergewissern Sie sich, dass es ausreichend ist. Die Speicheranforderungen unter Cisco.com entsprechen den empfohlenen Mindestgrößen für das ordnungsgemäße Funktionieren des Routers in den meisten Unternehmensnetzwerken. Die tatsächlichen Speicheranforderungen variieren je nach Protokollen, Routing-Tabellen und Datenverkehrsmustern.
Hinweis: Nur registrierte Cisco Benutzer haben Zugriff auf interne Informationen und Tools von Cisco.
Wenn Sie den Befehl show memory allocations-process totals (Gesamtsummen anzeigen), den Befehl show memory summary oder den Befehl show technical-support (im privilegierten Modus) von Ihrem Cisco Gerät ausgegeben haben, können Sie mit dem Output Interpreter mögliche Probleme und Korrekturen anzeigen.
Hinweis: Nur registrierte Cisco Benutzer haben Zugriff auf interne Informationen und Tools von Cisco.
Ein Speicherleck tritt auf, wenn ein Prozess Speicher anfordert oder zuweist und dann vergisst, den Speicher freizugeben (freizugeben), wenn er mit dieser Aufgabe fertig ist. Dadurch wird der Speicherblock reserviert, bis der Router neu geladen wird. Im Laufe der Zeit werden immer mehr Speicherblöcke durch diesen Prozess zugewiesen, bis kein freier Speicher verfügbar ist. Je nach Schweregrad der Situation mit zu wenig Speicher können Sie den Router nur neu laden, um ihn wieder betriebsbereit zu machen.
Dies ist ein Bug des Cisco Internet Operating System (Cisco IOS). Um sie loszuwerden, sollten Sie ein Upgrade auf die neueste Version Ihres Releasezugs durchführen. Wenn Sie beispielsweise Cisco IOS Software 11.2(14) ausführen, sollten Sie ein Upgrade auf das neueste 11.2(x)-Image durchführen.
Wenn das Problem dadurch nicht behoben wird, oder wenn Sie den Router nicht aktualisieren möchten, geben Sie den Befehl show processes memory in regelmäßigen Abständen über einen bestimmten Zeitraum ein (z. B. alle paar Stunden oder Tage, je nachdem, ob Sie ein schnelles oder langsames Leck haben). Überprüfen Sie, ob der freie Speicher weiter abnimmt und nie zurückgegeben wird. Die Rate, mit der freier Speicher verschwindet, hängt davon ab, wie oft das Ereignis auftritt, das zu dem Leck führt. Da der Speicher nie freigegeben wird, können Sie den Prozess verfolgen, der den Speicher verwendet, wenn Sie Speicherabbilder im Laufe der Zeit erstellen. Denken Sie daran, dass verschiedene Prozesse Speicher nach Bedarf zuweisen und freigeben, sodass Sie Unterschiede sehen können, aber wenn das Leck andauert, müssen Sie einen Prozess sehen, der ständig mehr Speicher verbraucht.
Hinweis: Es ist normal, dass bei einigen Prozessen, wie Border Gateway Protocol (BGP) oder Open Shortest Path First (OSPF)-Router, mehr als ein Megabyte Arbeitsspeicher verwendet werden. Dies bedeutet nicht, dass sie undicht sind.
Um den Prozess zu identifizieren, der mehr Arbeitsspeicher belegt, vergleichen Sie die Spalte "Halten" des Befehls "Arbeitsspeicher anzeigen" über das Zeitintervall. Manchmal kann man sehr deutlich sehen, dass ein Prozess mehrere Megabyte Speicher hält. Manchmal braucht es mehrere Schnappschüsse, um den Schuldigen zu finden. Wenn ein großer Teil des Speichers verloren gegangen ist, rufen Sie den Befehl show memory allocations-process totals oder show memory summary zur weiteren Fehlerbehebung auf. Wenden Sie sich dann an das Cisco Technical Assistance Center (TAC), und stellen Sie die erfassten Informationen zusammen mit einer Zusammenfassung des technischen Supports des Routers bereit.
Mit dem Output Interpreter Tool können Sie eine Analyse des Befehls show memory allocations-process totals oder show memory summary output empfangen.
Hinweis: Nur registrierte Cisco Benutzer haben Zugriff auf interne Informationen und Tools von Cisco.
Die Tabelle enthält die ersten drei Zeilen des Befehls 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
Gesamt = Der gesamte verfügbare Arbeitsspeicher, nachdem das Systemabbild geladen und seine Datenstrukturen erstellt hat.
Verwendet = die aktuell zugewiesene Speicherkapazität.
Frei = die aktuell verfügbare Speicherkapazität.
Niedrigster Wert = der niedrigste vom Router seit dem letzten Start aufgezeichnete freie Speicher.
Größter = der größte freie Speicherblock, der derzeit verfügbar ist.
Der Befehl show memory allocation-process totals enthält die gleichen Informationen wie die ersten drei Zeilen des Befehls show memory summary.
Folgendes können Sie aus der Ausgabe des Befehls show processes memory lernen:
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
Zugewiesen = Die Gesamtzahl der Bytes, die vom Prozess seit dem Router-Start zugewiesen wurden.
Freed = Die Gesamtzahl der Bytes, die von diesem Prozess freigegeben wurden.
Holding = Die Gesamtzahl der Bytes, die derzeit von diesem Prozess gespeichert werden. Dies ist die wichtigste Spalte für die Fehlerbehebung, da sie die tatsächliche Menge an Speicher anzeigt, die diesem Prozess zugewiesen wurde. Holding entspricht nicht notwendigerweise Allocations minus Freed (Zugewiesen minus Freigegeben), da einige Prozesse einen Speicherblock zuweisen, der später von einem anderen Prozess an den freien Pool zurückgegeben wird.
Der *Dead* Prozess ist kein echter Prozess. Dort wird der im Rahmen eines anderen beendeten Prozesses zugewiesene Speicher berücksichtigt. Der diesem Prozess zugewiesene Speicher wird vom Kernel freigegeben und bei Bedarf vom Router selbst an den Speicherpool zurückgegeben. So behandelt Cisco IOS den Arbeitsspeicher. Ein Speicherblock gilt als ausgefallen, wenn der Prozess, der den Block erstellt hat, beendet wird (nicht mehr läuft). Jeder Block verfolgt die Adresse und PID des Prozesses, der ihn erstellt hat. Wenn der Prozess, den der Scheduler aus einem Block pid ermittelt, während der periodischen Speicherabfrage nicht mit dem Prozess übereinstimmt, an den sich der Block erinnert, wird der Block als tot markiert.
Daher wurde Speicher, der als zum Prozess *Dead* gehörend markiert wurde, unter der Kontrolle eines Prozesses zugewiesen, der nicht mehr ausgeführt wird. Es ist normal, einen beträchtlichen Teil des Speichers in einem solchen Zustand zu haben. Hier ein Beispiel:
Der Arbeitsspeicher wird zugewiesen, wenn die Network Address Translation (NAT) während einer Telnet-Sitzung konfiguriert wird. Dieser Speicher wird im Rahmen des Telnet-Prozesses ("Virtual Exec") berücksichtigt. Nachdem dieser Vorgang beendet wurde, wird der Speicher für die NAT-Konfiguration weiterhin verwendet. Dies wird mit dem *toten* Prozess angezeigt.
Sie können sehen, unter welchem Kontext der Speicher dem show memory dead
unter der Spalte "Was":
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
Wenn ein Speicherleck erkannt wird und der *Dead*-Prozess derjenige zu sein scheint, der den Speicher belegt, schließen Sie Folgendes ein: show memory dead
in den Informationen enthalten, die dem Cisco TAC bereitgestellt wurden.
Dies ist eine der schwierigsten Ursachen zu überprüfen. Das Problem ist gekennzeichnet durch einen großen freien Speicher, aber einen kleinen Wert in der Spalte "Niedrigste". In diesem Fall führt ein normales oder abnormales Ereignis (z. B. eine große Routing-Instabilität) dazu, dass der Router eine ungewöhnlich große Menge an Prozessorspeicher für einen kurzen Zeitraum verwendet, während dem der Speicher ausgelaufen ist. Während dieses Zeitraums meldet der Router MALLOCFAIL. Es kann vorkommen, dass kurz danach der Speicher freigegeben wird und das Problem verschwindet (z. B. das Netzwerk stabilisiert sich). Der Speichermangel kann auch auf eine Kombination von Faktoren zurückzuführen sein, z. B.:
Ein Speicherleck, das eine große Menge an Speicher belegt hat, und dann eine Netzwerkinstabilität drückt den freien Speicher auf Null
Der Router verfügt nicht über ausreichend Arbeitsspeicher, um damit zu beginnen. Das Problem wird jedoch nur während eines seltenen Netzwerkereignisses erkannt.
Wenn der Router nicht neu gestartet wurde, geben Sie den show memory allocating-process totals
(oder show memory summary
wenn show memory allocating-process totals
nicht verfügbar ist), und sehen Sie sich die ersten drei Zeilen an. Die Protokollmeldungen können Hinweise darauf geben, welcher Prozess viel Speicher beansprucht hat:
Wenn die Speicherauslastung aufgrund eines Problems groß ist:
Normalerweise besteht die Lösung darin, mehr Speicher zu installieren.
seltenen oder ungewöhnlichen Ereignisses, beheben Sie das entsprechende Problem. Sie können dann entscheiden, zusätzliche Speicher für zukünftige "Versicherung" zu kaufen.
Diese Situation bedeutet, dass ein Prozess eine große Menge an Prozessorspeicher belegt hat und dann den Großteil oder den gesamten Speicher freigegeben hat. Außerdem bleiben Fragmente von Speicher erhalten, die entweder von diesem Prozess oder von anderen Prozessen zugewiesen werden, die während des gesamten Problems Speicher zugewiesen haben. Wenn dasselbe Ereignis mehrmals auftritt, kann der Speicher in sehr kleine Blöcke fragmentiert werden, sodass alle Prozesse, die einen größeren Speicherblock benötigen, nicht die erforderliche Speichermenge erhalten können. Dies kann sich auf den Router-Betrieb auswirken, da Sie keine Verbindung zum Router herstellen können und eine Aufforderung erhalten, wenn der Speicher stark fragmentiert ist.
Dieses Problem wird durch einen niedrigen Wert in der "Größten" Spalte (unter 20.000 Bytes) der show memory
-Befehl, aber einen ausreichenden Wert in der Spalte "Freed" (1MB oder mehr), oder eine andere große Disparität zwischen den beiden Spalten. Dies kann der Fall sein, wenn der Arbeitsspeicher des Routers sehr knapp wird, da im Cisco IOS keine Fragmentierungsroutine vorhanden ist.
Wenn Sie eine Speicherfragmentierung vermuten, fahren Sie einige Schnittstellen herunter. Dadurch können die fragmentierten Blöcke freigegeben werden. Wenn das funktioniert, verhält sich der Speicher normal, und Sie müssen nur noch mehr Speicher hinzufügen. Wenn Sie Schnittstellen herunterfahren hilft es nicht, kann es ein Fehler sein. Die beste Vorgehensweise besteht darin, sich mit den von Ihnen erfassten Informationen an Ihren Cisco Support-Mitarbeiter zu wenden.
Diese Situation kann durch den Prozess in der Fehlermeldung erkannt werden. Wenn der Prozess wie im nächsten Beispiel als <Interrupt-Level> aufgeführt wird, wird der Speicherzuweisungsfehler durch ein Softwareproblem verursacht.
"%SYS-2-MALLOCFAIL: Memory allocation of 68 bytes failed from 0x604CEF48, pool Processor, alignment 0-Process=, ipl= 3"
Dies ist ein Bug des Cisco Internet Operating System (Cisco IOS). Sie können das Bug Toolkit verwenden, um nach einer passenden Bug-ID für dieses Problem zu suchen. Sobald der Softwarefehler erkannt wurde, aktualisieren Sie auf eine Cisco IOS-Softwareversion, die das Problem behebt.
Hinweis: Nur registrierte Cisco Benutzer haben Zugriff auf interne Informationen und Tools von Cisco.
Zugriffslisten können viel Speicher verbrauchen, wenn sie auf Benutzerbasis verwendet werden. Die Zugriffslisten sind zu groß, um als Mini-Zugriffskontrolllisten (ACLs) klassifiziert zu werden, und werden jetzt als Turbo-ACLs kompiliert. Jedes Mal, wenn dies auftritt, muss der TACL-Prozess aktiviert und die neue ACL verarbeitet werden. Dies kann zu Datenverkehr führen, der je nach Kompilierungszeit und verfügbarer Prozesszeit zugelassen oder abgelehnt wird.
Kompilierte ACLs müssen an XCM gesendet werden. Wenn nur begrenzter Speicherplatz verfügbar ist und der Speicher davon ausgeführt wird, werden die Konsolenmeldungen angezeigt, und die Speicherdefragmentierung wird gestartet.
Problemumgehung:
Verwendung prägnanter ACLs, weniger Application Control Engines (ACEs), die als Mini-ACLs kompiliert werden können und sowohl den Speicherverbrauch als auch die Prozessleistung für die Kompilierung reduzieren können.
Verwendung vordefinierter ACLs auf dem Router, auf die über das RADIUS-Attribut filterID verwiesen wird.
Wenn ein 7000 Route Processor (RP) ein Image von Flash bootet, lädt er zuerst das ROM-Image und dann das Flash-Image in den Speicher. Der alte RP verfügt nur über 16 MB Arbeitsspeicher, und die Enterprise-Versionen der Cisco IOS Software, die nach Version 11.0 veröffentlicht wurden, sind nach dem Dekomprimieren größer als 8 MB. Wenn Sie das Image vom ROM und dann von Flash laden, kann dem 7000 RP der Speicher ausgehen, oder der Speicher kann während des Bootvorgangs fragmentiert werden, sodass der Router speicherbezogene Fehlermeldungen hat.
Die Lösung besteht darin, Fast Boot aus dem Konfigurationsregister zu aktivieren, sodass der RP nur eine minimale Teilmenge des Cisco IOS Software-Images im ROM lädt und dann die gesamte Cisco IOS Software aus Flash lädt. Um Fast Boot zu aktivieren, setzen Sie das Konfigurationsregister auf 0x2112. Dies kann auch den Bootvorgang beschleunigen.
Mit der UT Discovery-Funktion von CiscoWorks kann der freie Speicher auf einigen Ihrer Router sehr klein werden. Der Befehl show proc memory kann eine hohe Speicherkapazität anzeigen, die durch den "IP-Input"-Prozess aufrecht erhalten wird. Dies ist ein besonderer Fall des Problems der großen Speichermenge, die für normale oder ungewöhnliche Prozesse verwendet wird, bei dem "IP-Eingabe"-Prozess, was auch zu einem Problem mit der Speicherfragmentierung führen kann, wenn der Speicher aufgrund des niedrigen Speicherzustands fragmentiert wird.
Die Funktion "UT Discovery" veranlasst die Netzwerkmanagement-Station, einen Ping-Sweep für alle IPs in jedem erkannten Subnetz zu senden. Die Speicherprobleme werden durch die größere Größe des IP-Fast-Switching-Caches auf dem Router verursacht, da für jedes neue Ziel neue Cache-Einträge erstellt werden. Da die für die Einträge im Cache verwendete Maske davon abhängt, wie sie subnetziert ist, führt das Vorhandensein einer Adresse mit einer 32-Bit-Maske (z. B. einer Loopback-Adresse) in einem Hauptnetzwerk dazu, dass alle Einträge für dieses Netzwerk eine 32-Bit-Maske verwenden. Dies führt zur Erstellung einer großen Anzahl von Cache-Einträgen und zur Nutzung einer großen Speichermenge.
Die beste Lösung ist die Deaktivierung der UT-Erkennung. Gehen Sie dazu folgendermaßen vor:
Rufen Sie C:\Program Files\CSCOpx\etc\cwsi\ANIServer.properties auf.
Fügen Sie "UTPingSweep=0" hinzu.
Starten Sie ANI neu.
Dies kann dazu führen, dass die Tabelle für die Benutzernachverfolgung einige Endserver verpasst oder veraltet ist (dies kann bei einer anderen Cisco Anwendung namens User Registration Tool, die auf UT basiert, ein Problem sein), hat jedoch keine Auswirkungen auf die Campus-Erkennung, die nur SNMP-Datenverkehr verwendet. CEF-Switching kann diese Situation ebenfalls verbessern (mit CEF wird der IP-Cache aus der Routing-Tabelle beim Start erstellt). Weitere Informationen zu CEF und anderen verfügbaren Switching-Pfaden finden Sie unter So wählen Sie den besten Router-Switching-Pfad für Ihr Netzwerk.
Es gibt viele andere Anwendungen, die zu ähnlich niedrigen Speicherkapazitäten führen können. In den meisten Fällen liegt die Ursache des Problems nicht beim Router, sondern bei der Anwendung selbst. Normalerweise müssen Sie in der Lage sein, diese Paketstürme zu verhindern, indem Sie die Konfiguration der Anwendung überprüfen.
Einige Router (z. B. der Serien 2600, 3600 und 4000) benötigen einen minimalen E/A-Arbeitsspeicher, um bestimmte Schnittstellenprozessoren zu unterstützen.
Wenn der gemeinsam genutzte Arbeitsspeicher des Routers auch nach einem Neuladen zur Neige geht, können Sie die Schnittstellen physisch entfernen, um dieses Problem zu beheben.
Auf Routern der Serie 3600 den globalen Konfigurationsbefehl memory-size iomem i/o-memory-percentage
kann verwendet werden, um den prozentualen Anteil von DRAM für den E/A-Speicher und den Prozessorspeicher neu zuzuweisen. Die zulässigen Werte für den prozentualen E/A-Speicher sind 10, 15, 20, 25 (Standard), 30, 40 und 50 und 50. Für den E/A-Speicher sind mindestens 4 MB Arbeitsspeicher erforderlich.
Informationen zur Behebung dieses Problems finden Sie unter:
Anforderungen an gemeinsamen Speicher für die 4000/4500/4700-Router
Wenn Sie die Ausgabe eines show buffers
Befehl oder show technical-support
-Befehls (im Aktivierungsmodus) auf Ihrem Cisco Gerät aus, können Sie Output Interpreter verwenden, um potenzielle Probleme und Korrekturen anzuzeigen.
Hinweis: Nur registrierte Cisco Benutzer haben Zugriff auf interne Informationen und Tools von Cisco.
Wenn ein Prozess mit einem Puffer abgeschlossen ist, muss der Puffer freigegeben werden. Ein Pufferleck tritt auf, wenn der Code vergisst, einen Puffer zu verarbeiten, oder vergisst, diesen freizugeben, nachdem er mit dem Paket fertig ist. Daher wächst der Pufferpool weiter, da immer mehr Pakete in den Puffern feststecken. Sie können ein Pufferleck mit dem show buffers
aus. Einige der Public Buffer-Pools müssen ungewöhnlich groß sein, mit wenigen freien Puffern. Nach einem Neuladen können Sie sehen, dass die Anzahl der freien Puffer nie nahe an die Gesamtzahl der Puffer herankommt.
Mit dem Output Interpreter Tool können Sie eine Analyse der show buffers
Ausgabe.
Im Beispiel unten sind die mittleren Puffer betroffen. Die Fehlermeldung show buffers
gibt an, dass fast 8094 Puffer verwendet und nicht freigegeben werden (8122 insgesamt minus 28 freie Puffer):
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)
Dies ist ein Fehler der Cisco IOS-Software. Führen Sie ein Upgrade auf die neueste Version Ihres Releasezugs durch, um bekannte Bugs mit Pufferverlust zu beheben (z. B. wenn Sie Cisco IOS Software 11.2(14) verwenden, aktualisieren Sie auf das neueste 11.2(x)-Image. Wenn dies nicht hilfreich ist oder wenn ein Upgrade des Routers nicht möglich ist, geben Sie die folgenden Befehle für den Problempool aus, wenn der Router nicht über genügend Arbeitsspeicher verfügt. Diese Befehle können zusätzliche Informationen über den Inhalt der Puffer anzeigen:
show buffer old
zeigt zugewiesene Puffer, die älter als eine Minute sind
show buffer pool
(small - middle - big - verybig - large - huge)
zeigt eine Zusammenfassung der Puffer für den angegebenen Pool.
show buffer pool
(small - middle - big - verybig - large - huge) dump
zeigt ein Hex/ASCII-Dump aller Puffer, die einen bestimmten Pool verwenden.
Weitere Informationen finden Sie unter Fehlerbehebung bei Pufferleaks.
Dieses Problem betrifft nur die Serie 7500. Wenn der Router nicht über ausreichend "schnellen" Arbeitsspeicher verfügt, kann er stattdessen seinen Dynamic RAM (DRAM) verwenden. Es sind keine Maßnahmen erforderlich.
trying
zum Löschen des Präfixeintrags [IP_address]/[dec] (erwartet [hex], erhalten [hex])Die Fehlermeldung IPFAST-4-RADIXDELETE: Error try to delete prefix entry [IP_address]/[dec] (voraussichtlich [hex], got [hex]) (Fehler beim Löschen des Präfixeintrags [IP_Adresse]/[dec]) gibt an, dass die Tabelle "Router Fast Switching Cache" im Speicher beschädigt ist. Wenn der Router versucht, die Cache-Tabelle im Rahmen des normalen Prozesses oder der clear ip cache
eingegeben wurde, kann das System aufgrund einer Speicherbeschädigung keine Einträge löschen. Wenn der Router einen solchen Eintrag nicht löscht, wird die Meldung IPFAST-4-RADIXDELETE ausgegeben.
Um ein Problem mit dem beschädigten Cache-Speicher einer Tabelle zu beheben, muss der Router neu gestartet werden. Ein Neustart kann die Speicherstrukturen des Systems wieder aufteilen und dem schnellen Cache ermöglichen, beschädigungsfrei wiederherzustellen.
Grund für %SYS-2-CHUNKEXPANDFAIL: Der Blockpool für TACL-Bitmap konnte nicht erweitert werden. Die Fehlermeldung "Kein verfügbarer Speicher" gibt an, dass nicht genügend Prozessorspeicher zum Vergrößern des angegebenen Blockpools verfügbar ist. Es kann durch einen Prozess verursacht werden, der sich ungewöhnlich verhält.
Die Problemumgehung besteht darin, die Ausgabe dieser Befehle (basierend auf der Häufigkeit des Problems) regelmäßig zu erfassen, sodass die Speichernutzung des Routers überwacht werden kann:
show processes memory sorted
show memory statistics
show memory allocating-process totals
Gehen Sie wie folgt vor:
Überprüfen Sie die Speicheranforderungen für die Version oder den Funktionsumfang der Cisco IOS-Software.
Falls möglich, aktualisieren Sie in Ihrem Release Train auf die neueste Version der Cisco IOS-Software.
Überprüfen Sie, ob eine große Speichermenge für normale oder ungewöhnliche Prozesse verwendet wird. Fügen Sie bei Bedarf weiteren Speicher hinzu.
Überprüfen Sie, ob es sich um ein Leck oder eine Fragmentierung handelt (Pufferleck auf High-End-Routern).
Sammeln Sie die relevanten Informationen und wenden Sie sich an das TAC.
Gehen Sie wie folgt vor:
Überprüfen Sie die Anforderungen an den gemeinsam genutzten Speicher (siehe Nicht genügend gemeinsam genutzter Speicher für die Schnittstellen).
Falls möglich, aktualisieren Sie in Ihrem Release Train auf die neueste Version der Cisco IOS Software.
Bestimmen Sie, welcher Pufferpool betroffen ist, erfassen Sie die relevanten Informationen, und wenden Sie sich an das Cisco TAC.
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
2.0 |
19-Jan-2023 |
Aktualisiertes Format, feste CCW-Warnmeldungen. Rezertifizierung. |
1.0 |
02-Nov-2001 |
Erstveröffentlichung |