Proxmox VE – 12 praktycznych ulepszeń hosta, które warto wdrożyć

Większość z nas szuka łatwych do wdrożenia optymalizacji, które przynoszą szybkie i korzystne rezultaty. Poniżej znajduje się zestaw optymalizacji, które można wdrożyć w weekendy i które przyniosą natychmiastowe korzyści użytkownikom Proxmox w domowych laboratoriach. Mogą one poprawić wydajność, stabilność, a nawet wydłużyć żywotność sprzętu.

Zanim zaczniesz, mała przestroga

Przed wprowadzeniem jakichkolwiek poważniejszych zmian, pamiętaj o wykonaniu co najmniej następujących czynności:

  • Utwórz kopię zapasową pliku konfiguracyjnego przed jego edycją.
  • Zastosuj zmiany najpierw na jednym węźle, jeśli jest to klaster.
  • Uruchom ponownie system tylko podczas przerwy konserwacyjnej.
  • Po każdej zmianie w pliku sysctl sprawdź, czy plik został faktycznie załadowany.

Oto lista poleceń „punktów kontrolnych”, które pomogą Ci zapisać kilka ważnych ustawień konfiguracyjnych.

Backup konfiguracji Proxmox

Pomiń pobieranie dodatkowych języków APT

To ulepszenie przyspiesza aktualizacje i oszczędza trochę miejsca na dysku. Na serwerach zazwyczaj nie są potrzebne indeksy tłumaczeń dla wielu różnych języków.

Sprawdź, czy zostało to zastosowane:

Wyłączenie dodatkowych języków

Wymuś użycie APT w IPv4 (gdy protokół IPv6 powoduje powolne lub niestabilne aktualizacje)

Powiedzmy sobie szczerze, większość z nas nie ma w domowych laboratoriach implementacji protokołu IPv6. Jeśli konfiguracja dostawcy usług internetowych, routera lub serwera DNS sprawia, że ​​IPv6 jest zawodne, może to powodować problemy lub spowalniać działanie. Możemy jednak temu zaradzić, wymuszając IPv4, co natychmiast przywróci spójność aktualizacji.

Sprawdź, czy zostało zastosowane:

Wyłączenie wsparcia dla IPv4

Aby cofnąć:

Skonfiguruj automatyczne ponowne uruchomienie kernel panic

Kernel panic zdarza się raczej rzadko. Ale zdarza się. Host z kernel panic i utknięciem w nim to jedna z najgorszych rzeczy, jakie mogą się zdarzyć, zwłaszcza gdy jesteś poza domem i nie możesz zareagować.

To pozwala skonfigurować go tak, aby automatycznie się restartował:

Automatyczny Kernel Panic

Sprawdź, czy zostało to zastosowane:

Zwiększ limity systemowe

To praktyczne ulepszenie dla hostów obsługujących wiele kontenerów, narzędzi monitorujących lub innych urządzeń, które utrzymują wiele otwartych plików. Może to również pomóc uniknąć nietypowych awarii w skrajnych przypadkach.

fs.inotify.max_user_watches – maksymalna liczba watchy inotify na użytkownika.

Zapobiega błędom typu:

  • Bardzo często wymagane przez:
    • Docker / Kubernetes
    • Node.js / webpack / Vite
    • VS Code
    • Elasticsearch
    • Zabbix / Prometheus
    • Systemy CI/CD

echo „* soft nofile 1048576” – ustawia miękki limit otwartych plików:

Wjaśnienie składowych polecenia:

  • * – dla wszystkich użytkowników
  • soft – miękki limit (może być podniesiony do hard)
  • nofile – maksymalna liczba otwartych deskryptorów plików
  • 1048576 – do 1 miliona plików/socketów

Zapobiega błędom:

  • Krytyczne dla:
    • serwerów aplikacyjnych
    • baz danych
    • proxy (nginx, HAProxy)
    • systemów monitoringu
    • dużych środowisk produkcyjnych
Zwiększ limity systemowe w Proxmox

Weryfikacja dodania konfiguracji:

Popraw generowanie entropii za pomocą haveged

Serwery typu headless oraz środowiska zwirtualizowane bardzo często zmagają się z problemem niskiej entropii. Choć brzmi to dość enigmatycznie, w praktyce jest to jeden z częstszych powodów dziwnych opóźnień i „zawieszeń” w systemach serwerowych.

W systemach Linux, takich jak Proxmox VE, entropia oznacza ilość dostępnej losowości, czyli zdolność systemu do generowania nieprzewidywalnych danych. Jest ona wykorzystywana zawsze wtedy, gdy system musi stworzyć coś, co z definicji nie może być przewidywalne: klucze szyfrujące, certyfikaty TLS, klucze SSH, bezpieczne połączenia sieciowe, tokeny sesji czy inne elementy kryptograficzne. Bez odpowiedniej ilości entropii system nie jest w stanie wykonać tych operacji w bezpieczny sposób.

System operacyjny stale próbuje uzupełniać pulę entropii, obserwując różnego rodzaju nieprzewidywalne zdarzenia. Na typowym komputerze desktopowym są to między innymi ruchy myszy, naciśnięcia klawiszy, opóźnienia operacji dyskowych czy przerwania sprzętowe. Problem pojawia się wtedy, gdy tych zdarzeń praktycznie nie ma.

Właśnie dlatego serwery headless oraz maszyny wirtualne są szczególnie narażone na niski poziom entropii. Nie ma tam klawiatury ani myszy, interakcja użytkownika jest minimalna, a sprzęt często działa w bardzo powtarzalny sposób. W efekcie pula entropii szybko się wyczerpuje, a system zaczyna czekać na nowe źródła losowości. Objawia się to długim generowaniem kluczy SSH, opóźnionym startem usług TLS, wolnym uruchamianiem maszyn wirtualnych lub pozornie losowymi lagami przy operacjach kryptograficznych.

Jednym z najczęściej stosowanych i najszybszych rozwiązań tego problemu jest instalacja haveged. Jest to demon, który generuje dodatkową entropię, wykorzystując niestabilności czasowe i zachowanie procesora. Dzięki temu system nie musi blokować się w oczekiwaniu na losowość pochodzącą z fizycznych zdarzeń, których na serwerze headless po prostu nie ma. W praktyce haveged bardzo często „odblokowuje” system i eliminuje problemy z długim oczekiwaniem na operacje kryptograficzne.

Zainstalowanie haveged to klasyczne rozwiązanie „zapobiegające zawieszaniu się”:

Poprawa generacji entropii za pomocą haveged w Proxmox

Sprawdź, czy jest zainstalowany:

Weryfikacja generacji entropii w Proxmoxie

Zoptymalizuj zarządzanie pamięcią (może być teraz ważniejsze niż kiedykolwiek)

Nawet w dzisiejszych komputerach wprowadzono pewne poprawki, które pomagają złagodzić zdarzenia związane z obciążeniem pamięci. W węzłach z małą ilością pamięci RAM te konfiguracje pomagają utrzymać responsywność komputera nawet przy bardzo małej ilości pamięci:

Zoptymalizuj zarządzanie pamięcią w Proxmox

Weryfikacja ustawień:

Zastosuj optymalizacje sieciowe sysctl

Jeśli masz duży ruch sieciowy, w tym duże sieci pamięci masowej, duży ruch między maszynami wirtualnymi w obrębie centrum danych lub chcesz mieć ściślejszą sieć, zapoznaj się z tymi poprawkami:

Zastosuj optymalizacje sieciowe sysctl w Proxmox

Włącz TCP BBR i szybkie otwieranie

Poniżej znajduje się poprawka, która może pomóc w zmniejszeniu przepustowości i opóźnień w określonych warunkach. Może to być pomocne w przypadku dłuższych łączy RTT i przeciążonych ścieżek sieciowych.

Włącz tcp bbr i szybkie otwieranie w Proxmox

Weryfikacja zmian w konfiguracji:

Zoptymalizuj długość kolejki kart sieciowych i uczyń ją trwałą

To przydatna drobna poprawka, gdy zauważysz wzrosty lub spadki obciążenia lub po prostu chcesz zwiększyć głębokość kolejki dla zajętego interfejsu.

Znajdź swój interfejs za pomocą następującego polecenia:

Następnie uruchom poniższy kod, używając interfejsu znalezionego w powyższym poleceniu. W tym przypadku używam ens192.

Zoptymalizuj długość kolejki kart sieciowych i spraw, aby była trwała w Proxmox

Weryfikacja ustawień:

Sprawdzanie długości kolejki transmisyjnej i innych zmian sieciowych w Proxmox

Zmodyfikuj funkcję logrotate, aby logi nie pochłaniały powoli dysku głównego

To moim zdaniem jedno z najbardziej niedocenianych rozwiązań typu „ustaw i zapomnij”. Poniżej znajduje się kopia zapasowa konfiguracji i zastąpienie jej czystą, dzienną zasadą rotacji.

Zmodyfikuj logrotate, aby logi nie pochłaniały powoli dysku głównego w Proxmox

Uruchom test:

Log2RAM (dla dysków SSD dla konsumentów)

Wielu z nas korzysta z konsumenckich dysków SSD w domowych laboratoriach. Możemy ograniczyć częste zapisy logów z tych dysków, zapisując je w pamięci RAM i okresowo synchronizując z dyskiem. Pomaga to wydłużyć żywotność tych dysków SSD, zatrzymując większość zapisów.

Sprawdź poniższy skrypt BASH, który zainstaluje Log2RAM i skonfiguruje go dla Proxmox. Przetestuj w swoim laboratorium lub węźle testowym przed zastosowaniem w środowisku produkcyjnym.

Log2ram zainstalowany i aktywowany w Proxmox

Trwałe nazewnictwo interfejsów sieciowych (zapobieganie zmianie nazw interfejsów)

Oto proste i czytelne podejście polegające na utworzeniu pliku łącza systemd, który pasuje do adresu MAC karty sieciowej i ustawia stabilną nazwę.

Przykładowy przepływ pracy:

Najpierw zidentyfikuj adres MAC:

Trwałe nazewnictwo interfejsów sieciowych w Proxmox

Następnie utwórz plik systemd .link (zamień adres MAC i żądaną nazwę):

Na koniec należy ponownie uruchomić komputer, aby zastosować wprowadzone zmiany:

Następnie zaktualizuj /etc/network/interfaces (lub konfigurację sieciową Proxmox), aby użyć lan0.

Podsumowanie

Oto kilka poprawek, które warto wprowadzić w ten weekend na swoim hoście Proxmox. Szczególnie w domowym laboratorium, znajdziesz tu przydatne elementy, takie jak modyfikacja Log2RAM, która pomaga zapobiegać przedwczesnemu zużyciu dysków SSD klasy konsumenckiej. Wiele poprawek sieciowych również jest przydatnych.


Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

2 komentarze do “Proxmox VE – 12 praktycznych ulepszeń hosta, które warto wdrożyć”

  1. Podczas optymalizacji Log2RAM dostałem komunikat :

    Job for log2ram.service failed because the control process exited with error code.
    See „systemctl status log2ram.service” and „journalctl -xeu log2ram.service” for details.

    w analizie pomogła komenda

    journalctl -u log2ram.service –no-pager | tail -n 20

    dająca wynik
    ERROR: RAM disk for „/var/hdd.log/” too small. Can’t sync.

    Po zmniejszeniu logu

    journalctl –vacuum-time=2d

    wszystko ruszyło.

    Dzięki Pomocny Skrypt.

    Odpowiedz

Dodaj komentarz

beitadmin.pl - Droga Administratora IT