Het probleem "Kan geen geheugen toewijzen" oplossen tijdens een SLES-systeemupgrade

De SLES-upgrade lijkt goed te verlopen, maar dan verschijnt er in een terminal, installatieprogramma of migratielogboek de melding "Kan geen geheugen toewijzen". Deze melding bewijst op zichzelf niet dat de server meer fysiek RAM-geheugen nodig heeft. De fout kan te wijten zijn aan geheugenproblemen, een limiet van de virtuele machine of service, ontbrekende of onbruikbare swapruimte, of de upgradeomgeving zelf. Stel eerst vast welk proces en welke fase van de upgrade de melding heeft veroorzaakt; de juiste oplossing hangt af van die informatie.

De versie is van belang. Vanaf oktober 2026 beschrijft de SUSE SLES 16.0-upgradehandleiding een distributiemigratiesysteem dat een speciale live-upgrade-image opstart, terwijl SLES 15-servicepackmigraties gebruikmaken van de gevestigde YaST- of Zypper-migratieworkflow. Pas geen fix die bedoeld is voor een online servicepackmigratie toe op een upgrade naar een hogere versie zonder de procedure voor uw release te raadplegen. SUSE beschrijft het huidige SLES 16-traject in de SLES 16-upgradehandleiding .

1. Identificeer de fase waarin het misgaat voordat u iets verandert.

Noteer de volledige foutmelding, het tijdstempel, de opdracht of het scherm waarop deze verscheen, en of het systeem opnieuw is opgestart met een installatieprogramma of migratie-image. "Kan geen geheugen toewijzen" is een algemene foutmelding van het besturingssysteem, dus de omringende regels zijn vaak nuttiger dan de melding zelf.

  • Voordat de pakkettransactie start: mogelijk is er een fout opgetreden bij de registratie, opslag, migratievoorbereiding of installatie. Controleer het systeem- en procesgeheugen en bekijk vervolgens het relevante service- of migratielogboek.
  • Tijdens het installeren of verwijderen van pakketten: Zypper en RPM hebben mogelijk al wijzigingen in het systeem aangebracht. Beëindig het proces niet, herstart de computer niet en start geen tweede pakketbeheerder, ook al lijkt de voortgang traag. Controleer de console en de logboeken en wacht tot het ondersteunde migratieproces is voltooid of een duidelijke foutmelding geeft.
  • Na een herstart met een upgrade-image: het proces kan draaien met een andere resourceomgeving dan het oorspronkelijke besturingssysteem. Een swapgebied dat vóór de herstart zichtbaar was, is geen bewijs dat de upgrade-image er gebruik van kan maken.

De SUSE SLES 16-migratieprocedure bereidt de migratieomgeving voor, koppelt bestandssystemen, configureert netwerken, bereidt Zypper voor, voert upgrades uit, werkt de bootloader bij en herstart het systeem. De handleiding vermeldt dat een fout vóór de upgrade het systeem terugzet naar de oorspronkelijke staat; dit betekent echter niet dat elke fout tijdens het vervangen van pakketten onschadelijk is. Bewaar logbestanden en vermijd handmatige herstelstappen totdat u weet welke fase is mislukt.

2. Controleer het RAM-geheugen, de swapruimte en recente kernelberichten.

Als het oorspronkelijke SLES-systeem nog steeds actief is, of als u een herstelomgeving hebt bereikt, begin dan met alleen-lezen controles:

free -h
swapon --show
vmstat 1 5
ps -eo pid,comm,rss,%mem --sort=-rss | head -n 15

free -hGeeft een overzicht van het geheugen en de swap. Focus op het beschikbare geheugen en de gebruikte swap, niet alleen op de kolom 'vrij': Linux gebruikt anders ongebruikt RAM-geheugen voor caches. vmstatDit helpt om te zien of de machine continu aan het pagingen is. De proceslijst kan een database, Java-service, back-up of andere workload onthullen die geheugen verbruikt tijdens de upgrade.

Zoek naar kernel OOM-records rond het tijdstip van de fout:

sudo journalctl -k --since "30 minutes ago" |
  grep -i -E 'out of memory|oom|killed process'

Als de fout eerder is opgetreden, wijzig dan het tijdsvenster. Een kernelbericht met de naam van een beëindigd proces is een aanwijzing voor een geheugenprobleem; het ontbreken van een overeenkomende regel sluit niet alle toewijzingsfouten uit. Als de upgrade plaatsvindt in een aparte productieomgeving, controleer dan de logboeken van die omgeving (indien beschikbaar) in plaats van alleen te vertrouwen op het logboek van het oude systeem.

Controleer ook of een virtuele machine, container of systemd-eenheid een geheugenlimiet heeft. Een gast-VM kan weliswaar beschikbaar geheugen op de host hebben, maar toch tegen zijn eigen geconfigureerde limiet aanlopen. In SLES 16 beschrijft SUSE cgroups v2 als de standaard hiërarchie voor resourcebeheer en legt uit dat systemd resourcelimieten kan toepassen. Controleer de relevante VM-configuratie of service- MemoryMaxinstellingen in plaats van willekeurig globale kernellimieten te verhogen. Zie de SUSE SLES 16-handleiding voor kernelcontrolegroepen .

3. Verminder het gelijktijdige gebruik van geheugen en probeer het alleen opnieuw op een veilig moment.

Als uit metingen blijkt dat een workload het grootste deel van het beschikbare geheugen gebruikt, plan dan een onderhoudsvenster in en stop niet-essentiële services op een gecontroleerde manier voordat u het opnieuw probeert. Voorbeelden hiervan zijn geheugenintensieve applicatieprocessen, analysetaken, testdatabases en back-upprocessen. Stop opslag-, cluster- of applicatieservices niet zomaar op een productiehost; gebruik de gedocumenteerde afsluitprocedure van de applicatie en controleer of het stoppen ervan geen gebruikers of hersteltaken verstoort.

Vergelijk voor een virtuele machine het geconfigureerde RAM-geheugen van de gastmachine met de capaciteit van de host en de huidige geheugenbehoefte van andere gastmachines. Als de gastmachine te weinig geheugen heeft, vergroot u het toegewezen geheugen met behulp van de door de hypervisor ondersteunde methode. Of geheugen tijdens gebruik kan worden toegevoegd, hangt af van de hypervisor, de configuratie van de gastmachine en de werkbelasting; plan een herstart indien nodig. Controleer in de publieke cloud de instantiegrootte en eventuele providerspecifieke geheugenlimieten.

Als het bericht blijft verschijnen terwijl de machine voldoende RAM-geheugen heeft en er geen OOM-melding is, onderzoek dan de proceslimieten. Controleer voor een nog actief proces /proc/PID/limitsde proces-ID. Controleer voor een door systemd beheerde upgrade-helper de resource-instellingen van de unit. Een limiet kan een proces beperken, zelfs als de host voldoende geheugen heeft. Wijzig een limiet alleen als u de betreffende instelling kunt identificeren en de impact ervan begrijpt.

Nadat u de vastgestelde beperking hebt verholpen, kunt u de upgrade alleen hervatten of opnieuw proberen via de upgrademethode die wordt ondersteund voor uw specifieke SLES-release en upgradepad. Voor SLES 15-servicepackmigratie gebruikt u de gedocumenteerde YaST- of Zypper-migratieworkflow. Voor SLES 16-hoofdversiemigratie volgt u de SLES 16-distributiemigratieprocedure. De SUSE SLES 15 SP7-handleiding beschrijft de servicepackworkflow en de ondersteunde terugdraaivereisten in de online upgradedocumentatie .

4. Overweeg de swap zorgvuldig; gebruik deze niet als een blinde oplossing.

Extra swapgeheugen kan een systeem meer virtuele-geheugenruimte geven wanneer de werklast het geheugen kan pagineren, maar het is veel trager dan RAM. Als de machine al veel swapgeheugen gebruikt, kan het toevoegen van meer swapgeheugen de upgrade extreem traag maken zonder een te kleine VM of een beperking van een geïsoleerd proces op te lossen. Controleer eerst of er swapgeheugen aanwezig is en of het wordt gebruikt met swapon --showen free -h.

Gebruik de SUSE-procedure voor uw SLES-versie en bestandssysteem als u swap wilt toevoegen. Wees extra voorzichtig met Btrfs: SUSE beschrijft beperkingen voor swapbestanden op Btrfs en stelt dat er geen snapshot kan worden gemaakt zolang er een swapbestand actief is op het bronsubvolume. Aangezien SLES doorgaans afhankelijk is van Snapper-snapshots voor systeemherstel, mag u tijdens een upgradevenster geen generiek swapbestand aanmaken en activeren op het rootsubvolume waarvan een snapshot is gemaakt. Geef er de voorkeur aan om RAM toe te voegen of een correct geconfigureerde swap-partitie of ondersteunde locatie te gebruiken nadat u de opslagindeling en het herstelplan hebt gecontroleerd. De bestandssysteemspecifieke details vindt u in de SUSE SLES 15 SP7-opslaghandleiding .

Wijzig de OOM-killer niet vm.overcommit_memory, schakel deze niet uit en voer geen willekeurige opschoonopdracht uit als eerste reactie. Deze wijzigingen kunnen het symptoom maskeren, de werkbelasting destabiliseren of het herstel bemoeilijken. Verzamel eerst bewijsmateriaal en raadpleeg de specifieke richtlijnen van SUSE of uw applicatieleverancier als de logboeken wijzen op een specifieke geheugenconfiguratie.

5. Herstel als de upgrade is gestopt nadat de pakketwijzigingen zijn begonnen.

Voordat u besluit een upgrade opnieuw uit te voeren, controleert u of de pakketbeheerder nog actief is en of de migratietool een definitieve fout heeft gemeld. Als de upgrade is gestopt nadat er pakketwijzigingen waren begonnen, slaat u de volledige loguitvoer op en raadpleegt u de hersteldocumentatie voor die release. Voer de commando's zypper dup, zypper migration, YaST-migratie en RPM niet gelijktijdig uit.

In SLES 15 SP7 beschrijft SUSE de terugdraaiprocedure voor servicepacks wanneer het rootbestandssysteem Btrfs is en Snapper-snapshots zijn ingeschakeld. De terugdraaiprocedure vereist het identificeren en testen van de snapshot van vóór de migratie, waarna de terugdraaiing permanent moet worden gemaakt; het is geen universele oplossing voor elke upgradefout. De migratie van een hoofdversie in SLES 16 volgt een andere workflow, dus gebruik de huidige upgrade- en herstelinstructies in plaats van aan te nemen dat de procedure voor SLES 15 van toepassing is. Als het systeem bedrijfskritisch is, er geen geteste back-up beschikbaar is of de migratie mislukt tijdens het vervangen van pakketten, open dan een supportticket bij SUSE voordat u probeert pakketten handmatig te herstellen.

6. Controleer het systeem voordat u de normale dienstverlening hervat.

Zodra de upgrade is voltooid en de server normaal opstart, controleer dan de versie en registratie van het besturingssysteem, en vervolgens de consistentie van de pakketten en de workload die het probleem oorspronkelijk aan het licht bracht.

cat /etc/os-release
sudo SUSEConnect --status
sudo zypper verify
free -h
swapon --show

Gebruik de pakketverificatieopdracht die wordt ondersteund door uw SLES-versie; als zypper verifydeze niet beschikbaar is of zich anders gedraagt ​​in uw release, raadpleeg zypper helpdan de beheerdershandleiding van de release. Controleer de applicatie- en kernellogboeken op nieuwe fouten, bevestig dat de beoogde services gezond zijn en monitor het geheugen en de swap terwijl de belasting afneemt. Controleer of het ondersteunde upgradedoel is geïnstalleerd en of de serverregistratie en repositories zich in de verwachte status bevinden voordat u het onderhoudsvenster sluit.

Een succesvolle oplossing betekent meer dan alleen een verdwijnende foutmelding: de SLES-migratie wordt voltooid via een ondersteund pad, de machine start op met de verwachte release, pakketten en registraties worden gecontroleerd en normale workloads draaien zonder herhaalde OOM-gebeurtenissen. Als de foutmelding "Kan geen geheugen toewijzen" terugkeert ondanks een lage geheugenbelasting, voldoende swapgeheugen en geen resourcebeperking, bewaar dan de precieze log- en procesdetails. Deze aanwijzingen onderscheiden een upgradefout van een capaciteitsprobleem.

Laat een reactie achter

Schermscheuren op Intel-graphics in Pardus Linux verhelpen: een resultaatgerichte handleiding

Schermscheuren op Intel-graphics in Pardus Linux verhelpen: een resultaatgerichte handleiding

Los schermscheuren met Intel-graphics in Pardus Linux op door te controleren of X11 of Wayland wordt gebruikt, de compositorinstellingen aan te passen, de vernieuwingsfrequentie te controleren, de actieve Xorg-driver te gebruiken en TearFree alleen in te schakelen wanneer dit nodig is.

Hoe configureer je de SLES 15-firewall met firewall-cmd?

Hoe configureer je de SLES 15-firewall met firewall-cmd?

Configureer firewalld op SLES 15: controleer zones, sta services of poorten toe, sla permanente regels op, herlaad veilig en controleer de toegang.

SLES Live Patching Configuratiehandleiding: Kernelupdates toepassen zonder opnieuw op te starten

SLES Live Patching Configuratiehandleiding: Kernelupdates toepassen zonder opnieuw op te starten

Schakel live kernelpatching in op SLES 15 SP7, pas ondersteunde patches toe zonder opnieuw op te starten, controleer actieve patches en begrijp wanneer een herstart van de kernel nog steeds nodig is.

Hoe schakel ik de FIPS-modus in op SUSE Linux Enterprise Server 15?

Hoe schakel ik de FIPS-modus in op SUSE Linux Enterprise Server 15?

Schakel de FIPS-modus in op SLES 15 met behulp van het door SUSE ondersteunde installatieprogramma, herstart het systeem veilig, controleer de status van de kernel en het cryptografische beleid en controleer de certificeringslimieten.

Hoe installeer je Google Chrome op Gooroom OS zonder de beveiligingsrichtlijnen te schenden?

Hoe installeer je Google Chrome op Gooroom OS zonder de beveiligingsrichtlijnen te schenden?

Installeer Google Chrome veilig op Gooroom OS met officiële .deb-pakketten, APT, beleidscontroles, update-instructies en oplossingen voor beheerde apparaten.

Hoe exporteer ik SLES-systeemlogboeken veilig naar een externe Syslog-server?

Hoe exporteer ik SLES-systeemlogboeken veilig naar een externe Syslog-server?

Stuur SLES-systeemlogboeken veilig door naar een externe syslog-server met rsyslog, TLS-certificaten, peer-naamverificatie, wachtrijen, validatie en testen.

SLES 15 Active Directory-integratie met SSSD: een stapsgewijze handleiding

SLES 15 Active Directory-integratie met SSSD: een stapsgewijze handleiding

Voeg SLES 15 toe aan Active Directory met SSSD via YaST. Bereid DNS en tijd voor, configureer domeinaanmeldingen, verifieer Kerberos en vergelijk SSSD, Winbind en realmd.

Los problemen met de Realtek RTL8821CE Wi-Fi-driver op in Pardus Linux.

Los problemen met de Realtek RTL8821CE Wi-Fi-driver op in Pardus Linux.

Los de RTL8821CE Wi-Fi-problemen op in Pardus Linux door de ingebouwde rtw88-driver, de Realtek-firmware, rfkill, NetworkManager en veilige terugvalopties te controleren.

Los het probleem "Tijdelijke fout bij het oplossen van DNS" op in Debian 12 met systemd-resolved.

Los het probleem "Tijdelijke fout bij het oplossen van DNS" op in Debian 12 met systemd-resolved.

Diagnoseer en los DNS-resolutieproblemen op in Debian 12 met systemd-resolved, inclusief problemen met resolv.conf, NetworkManager, networkd, cache en verificatie.

Hoe je Pardus Linux veilig naast Windows 11 kunt installeren (dual boot)

Hoe je Pardus Linux veilig naast Windows 11 kunt installeren (dual boot)

Installeer Pardus 25.2 naast Windows 11 door een back-up te maken, het Windows-volume te verkleinen, op te starten vanaf een UEFI USB-stick en de bestaande EFI- en herstelpartities te beschermen.