Jak skonfigurować lokalny serwer SUSE RMT (zamiennik SMT)
Skonfiguruj SUSE RMT na SLES 15, zsynchronizuj metadane SCC, utwórz kopię lustrzaną wybranych repozytoriów, zarejestruj klientów przez HTTPS i poznaj ograniczenia migracji z SMT.
Aktualizacja SLES wydaje się postępować, a następnie terminal, instalator lub dziennik migracji zgłasza komunikat „Nie można przydzielić pamięci”. Sam komunikat nie dowodzi, że serwer potrzebuje więcej fizycznej pamięci RAM. Przyczyną awarii może być przeciążenie pamięci, limit maszyny wirtualnej lub usługi, brak lub nieużyteczność wymiany, albo samo środowisko aktualizacji. Najpierw zidentyfikuj proces i fazę aktualizacji, które spowodowały wygenerowanie komunikatu; bezpieczne rozwiązanie zależy od tych szczegółów.
Wersja ma znaczenie. Od października 2026 roku przewodnik SUSE po aktualizacji wersji głównej systemu SLES 16.0 opisuje system migracji dystrybucji, który uruchamia dedykowany obraz aktualizacji na żywo, podczas gdy migracje pakietów serwisowych SLES 15 korzystają ze sprawdzonego procesu migracji YaST lub Zypper. Nie należy stosować poprawki przeznaczonej do migracji pakietów serwisowych online do aktualizacji wersji głównej bez sprawdzenia procedury dla danego wydania. SUSE dokumentuje aktualną ścieżkę SLES 16 w swoim przewodniku aktualizacji SLES 16 .
Zapisz pełny opis błędu, znacznik czasu, polecenie lub ekran, na którym wystąpił, oraz informację, czy system został ponownie uruchomiony z instalatorem lub obrazem migracji. „Nie można przydzielić pamięci” to ogólny błąd systemu operacyjnego, dlatego otaczające go wiersze są często bardziej przydatne niż sam komunikat.
Sekwencja migracji SUSE SLES 16 obejmuje przygotowanie środowiska migracyjnego, montowanie systemów plików, konfigurację sieci, przygotowanie Zyppera, aktualizację pakietów, aktualizację programu rozruchowego i ponowne uruchomienie systemu. W instrukcji podano, że błąd przed rozpoczęciem aktualizacji przywraca system do stanu pierwotnego; nie oznacza to jednak, że każdy błąd podczas wymiany pakietów jest nieszkodliwy. Zachowaj logi i unikaj ręcznego odzyskiwania systemu, dopóki nie dowiesz się, który etap zakończył się niepowodzeniem.
Jeśli oryginalny system SLES nadal działa lub dotarłeś do powłoki odzyskiwania, zacznij od sprawdzeń tylko do odczytu:
free -h
swapon --show
vmstat 1 5
ps -eo pid,comm,rss,%mem --sort=-rss | head -n 15
free -hPodsumowuje pamięć i przestrzeń wymiany. Skup się na dostępnej pamięci i przestrzeni wymiany, a nie tylko na kolumnie „wolna”: Linux wykorzystuje w przeciwnym razie bezczynną pamięć RAM jako pamięć podręczną. vmstatPomaga to sprawdzić, czy komputer stale stronicuje. Lista procesów może ujawnić bazę danych, usługę Java, kopię zapasową lub inne obciążenie zużywające pamięć podczas aktualizacji.
Poszukaj rekordów OOM jądra w czasie wystąpienia błędu:
sudo journalctl -k --since "30 minutes ago" |
grep -i -E 'out of memory|oom|killed process'
Jeśli błąd wystąpił wcześniej, zmień okno czasowe. Komunikat jądra wskazujący na zatrzymany proces świadczy o wystąpieniu zdarzenia braku pamięci; brak pasującego wiersza nie wyklucza wszystkich błędów alokacji. Jeśli aktualizacja odbywa się w oddzielnym środowisku produkcyjnym, sprawdź logi tego środowiska, o ile są dostępne, zamiast polegać wyłącznie na dzienniku starego systemu.
Sprawdź również, czy maszyna wirtualna, kontener lub jednostka systemd ma limit pamięci. Gość może mieć dostępną pamięć na hoście, ale nadal osiągać swój własny, skonfigurowany limit. W systemie SLES 16 firma SUSE dokumentuje cgroups v2 jako domyślną hierarchię kontroli zasobów i wyjaśnia, że systemd może stosować limity zasobów. Sprawdź odpowiednią konfigurację maszyny wirtualnej lub MemoryMaxustawienia usługi zamiast losowo zwiększać globalne limity jądra. Zapoznaj się z przewodnikiem SUSE po grupach kontroli jądra w systemie SLES 16 .
Jeśli pomiary wskazują, że obciążenie wykorzystuje większość dostępnej pamięci, zaplanuj okno konserwacyjne i zatrzymaj wszystkie nieistotne usługi przed ponowną próbą. Przykładami są aplikacje wymagające dużej ilości pamięci, zadania analityczne, testowe bazy danych i procesy tworzenia kopii zapasowych. Nie zatrzymuj bezmyślnie usług pamięci masowej, klastra ani aplikacji na hoście produkcyjnym; skorzystaj z udokumentowanej procedury wyłączania aplikacji i upewnij się, że jej zatrzymanie nie zakłóci pracy użytkowników ani zadania odzyskiwania.
W przypadku maszyny wirtualnej porównaj skonfigurowaną pamięć RAM gościa z pojemnością hosta i aktualnym zapotrzebowaniem innych gości. Jeśli gość ma zbyt mały rozmiar, zwiększ przypisaną mu pamięć, korzystając z metody obsługiwanej przez hiperwizor. Możliwość dodawania pamięci „na gorąco” zależy od hiperwizora, konfiguracji gościa i obciążenia; w razie potrzeby zaplanuj ponowne uruchomienie. W chmurze publicznej sprawdź rozmiar instancji i wszelkie limity pamięci specyficzne dla dostawcy.
Jeśli komunikat nadal się wyświetla, mimo że na komputerze jest dużo dostępnej pamięci RAM i nie ma rekordu OOM, sprawdź limity procesów. W przypadku wciąż działającego procesu, sprawdź go, /proc/PID/limitsużywając jego rzeczywistego identyfikatora. W przypadku narzędzia wspomagającego aktualizację zarządzanego przez systemd, sprawdź ustawienia zasobów jednostki. Limit może ograniczyć jeden proces, nawet gdy host ma wolną pamięć. Zmień limit tylko wtedy, gdy możesz zidentyfikować odpowiednie ustawienie i zrozumieć jego wpływ.
Po usunięciu zidentyfikowanego ograniczenia, wznów lub spróbuj ponownie tylko za pomocą metody aktualizacji obsługiwanej dla konkretnej wersji i ścieżki aktualizacji systemu SLES. W przypadku migracji z pakietem serwisowym SLES 15 należy skorzystać z udokumentowanego przepływu pracy migracji YaST lub Zypper. W przypadku migracji głównej wersji systemu SLES 16 należy postępować zgodnie z procedurą migracji dystrybucji SLES 16. Podręcznik SUSE dla systemu SLES 15 SP7 wyjaśnia przepływ pracy z pakietem serwisowym i obsługiwane wymagania wstępne dotyczące wycofania w dokumentacji aktualizacji online .
Dodatkowa pamięć wymiany może zapewnić systemowi większy zapas pamięci wirtualnej, gdy obciążenie może stronicować pamięć, ale jest znacznie wolniejsza niż pamięć RAM. Jeśli maszyna i tak intensywnie korzysta z pamięci wymiany, dodanie większej ilości pamięci wymiany może znacznie spowolnić proces aktualizacji, nie rozwiązując problemu zbyt małej maszyny wirtualnej lub ograniczenia liczby izolowanych procesów. Najpierw sprawdź, czy pamięć wymiany istnieje i czy jest używana z swapon --show.free -h
Jeśli chcesz dodać partycję wymiany, skorzystaj z procedury SUSE dla swojej wersji systemu SLES i systemu plików. Zachowaj szczególną ostrożność w przypadku systemu Btrfs: SUSE dokumentuje ograniczenia dotyczące plików wymiany w systemie Btrfs i stwierdza, że nie można utworzyć migawki, gdy plik wymiany w źródłowym podwoluminie jest aktywny. Ponieważ system SLES często korzysta z migawek Snapper do odzyskiwania systemu, nie twórz i nie aktywuj ogólnego pliku wymiany na migawkowanym podwoluminie głównym w trakcie aktualizacji. Lepiej dodać pamięć RAM lub użyć poprawnie skonfigurowanej partycji wymiany albo obsługiwanej lokalizacji po sprawdzeniu układu pamięci masowej i planu odzyskiwania. Szczegóły dotyczące konkretnego systemu plików można znaleźć w przewodniku po pamięci masowej SLES 15 SP7 firmy SUSE .
Nie zmieniaj vm.overcommit_memory, nie wyłączaj programu OOM Killer ani nie uruchamiaj dowolnego polecenia czyszczenia jako pierwszej odpowiedzi. Takie zmiany mogą ukryć symptom, zdestabilizować obciążenia lub utrudnić odzyskiwanie. Najpierw zbierz dowody i skorzystaj ze wskazówek dotyczących ustawień firmy SUSE lub dostawcy aplikacji, jeśli logi wskazują na specjalistyczną konfigurację pamięci.
Przed podjęciem decyzji o ponownym uruchomieniu aktualizacji należy sprawdzić, czy menedżer pakietów jest nadal aktywny i czy narzędzie migracji zgłosiło ostateczną awarię. Jeśli aktualizacja zatrzymała się po rozpoczęciu zmian w pakietach, należy zapisać pełne dane wyjściowe dziennika i zapoznać się z dokumentacją odzyskiwania dla danej wersji. Nie należy uruchamiać poleceń zypper dup, zypper migration, migracji YaST ani RPM jednocześnie.
W systemie SLES 15 SP7 firma SUSE dokumentuje wycofanie pakietu Service Pack, gdy głównym systemem plików jest Btrfs, a migawki Snapper są włączone. Procedura wycofania wymaga zidentyfikowania i przetestowania migawki sprzed migracji, a następnie trwałego wycofania; nie jest to uniwersalna metoda naprawy każdego błędu aktualizacji. Migracja do wersji głównej w systemie SLES 16 przebiega zgodnie z innym procesem, dlatego należy skorzystać z bieżących instrukcji dotyczących aktualizacji i odzyskiwania, zamiast zakładać, że procedura SLES 15 ma zastosowanie. Jeśli system ma krytyczne znaczenie dla firmy, nie ma przetestowanej kopii zapasowej lub migracja nie powiedzie się podczas wymiany pakietów, przed podjęciem próby ręcznej naprawy pakietów należy zgłosić się do pomocy technicznej SUSE.
Gdy aktualizacja zgłosi ukończenie i serwer uruchomi się normalnie, sprawdź wydanie systemu operacyjnego i rejestrację, a następnie sprawdź spójność pakietu i obciążenie, które pierwotnie ujawniło problem:
cat /etc/os-release
sudo SUSEConnect --status
sudo zypper verify
free -h
swapon --show
Użyj polecenia package-verification obsługiwanego przez Twoją wersję SLES. Jeśli zypper verifyjest ono niedostępne lub zachowuje się inaczej w Twojej wersji, zapoznaj się zypper helpz podręcznikiem administratora tej wersji. Sprawdź logi aplikacji i jądra pod kątem nowych błędów, upewnij się, że usługi są sprawne oraz monitoruj pamięć i wymianę podczas ładowania. Przed zamknięciem okna konserwacji sprawdź, czy obsługiwany cel aktualizacji został zainstalowany oraz czy rejestracja i repozytoria serwera znajdują się w oczekiwanym stanie.
Skuteczna naprawa oznacza coś więcej niż tylko znikający komunikat o błędzie: migracja SLES kończy się z użyciem obsługiwanej ścieżki, komputer uruchamia się do oczekiwanej wersji, pakiety i rejestracja są sprawdzane, a normalne obciążenia działają bez powtarzających się zdarzeń braku pamięci (OOM). Jeśli komunikat „Nie można przydzielić pamięci” pojawia się pomimo niskiego obciążenia pamięci, wystarczającej ilości pamięci wymiany i braku limitu zasobów, należy zachować dokładne dane dziennika i procesu – to one pozwalają odróżnić błąd aktualizacji od problemu z pojemnością.
Skonfiguruj SUSE RMT na SLES 15, zsynchronizuj metadane SCC, utwórz kopię lustrzaną wybranych repozytoriów, zarejestruj klientów przez HTTPS i poznaj ograniczenia migracji z SMT.
Rozwiąż problem brakującej karty dźwiękowej w systemie Pardus Linux 23. Sprawdź wykrywanie ALSA, moduły jądra, usługi audio, profile wyjściowe, oprogramowanie układowe i aktualizacje w bezpieczny sposób.
Napraw gościa Pardus KVM, który zablokował się na rozdzielczości 1024x768, sprawdzając wirtualny procesor GPU, agenta SPICE, sesję X11 lub Wayland i weryfikując prawidłowość wyższych trybów wyświetlania.
Automatyczne montowanie zdalnego katalogu SSHFS podczas rozruchu w systemie Debian przy użyciu klucza SSH, pliku /etc/fstab, opcji sieciowych systemd, automatycznego montowania i kroków weryfikacji.
Rozwiąż problem „Nie można przydzielić pamięci” podczas aktualizacji SLES. Sprawdź pamięć RAM, swap, logi OOM i limity procesów, a następnie odzyskaj dane bez przerywania transakcji pakietów.
Rozwiąż problemy z przesunięciem dotyku, obrotem i mapowaniem wyświetlania na tabletach z systemem Harmonica OS (HamoniKR). Porównaj poprawki X.Org i libinput, przetestuj bezpiecznie i dowiedz się, kiedy kalibracja nie pomoże.
Encrypt an existing Debian 12 swap partition with dm-crypt, a fresh random key at every boot, /etc/crypttab, /etc/fstab, and safe verification steps.
Skonfiguruj smartmontools w Ubuntu, aby monitorować stan dysku i wysyłać alerty SMART e-mail. Sprawdź obsługę urządzenia, skonfiguruj dostarczanie poczty, przetestuj powiadomienia i rozwiąż problemy.
Napraw błędy rozruchu UEFI w systemie Debian, sprawdzając tryb rozruchu instalatora, partycję systemową EFI, wpisy NVRAM, pliki GRUB EFI, bezpieczny rozruch i awaryjne wersje oprogramowania sprzętowego.
Skonfiguruj Snappera do wykonywania i czyszczenia zaplanowanych migawek Btrfs w systemie Ubuntu Desktop. Najpierw sprawdź układ podwoluminów, włącz timery systemd i zweryfikuj bezpieczne przechowywanie.