W ostatnim czasie prace nad instalatorem środowiska BSNM skupiły się na eliminacji kolejnych błędów konfiguracyjnych oraz wejściu na wyższy poziom pod kątem optymalizacji wydajności serwera hostingowego. Zależało mi na wyciśnięciu maksimum z dostępnych zasobów sprzętowych, opierając się na lekkich rozwiązaniach i unikając dodawania tzw. bloatware’u, który niepotrzebnie obciążałby procesor. Poniżej przedstawiam kluczowe zmiany i nowości wdrożone do projektu.
Optymalizacja kodu i stabilność instalatora
Instalator przeszedł kolejną, rygorystyczną fazę testów. Zlokalizowałem i całkowicie usunąłem pomniejsze błędy pojawiające się podczas zautomatyzowanego wdrażania usług systemowych. Dzięki temu proces przygotowania serwera do pracy z profilem hostingowym jest teraz jeszcze bardziej stabilny, płynny i bezawaryjny.
Ekstremalna wydajność pamięci RAM – własny phpredis, igbinary oraz zstd
W architekturze hostingowej BSNM ogromny nacisk kładę na zoptymalizowaną pamięć podręczną obiektów (wykorzystującą silnik Valkey/Redis). Aby drastycznie zwiększyć jej pojemność i szybkość, postanowiłem pójść o krok dalej niż domyślne rozwiązania FreeBSD i przebudowałem główny łącznik między językiem PHP a bazą pamięci podręcznej.
Wdrożyłem do środowiska pełne wsparcie dla zoptymalizowanego modułu phpredis, wkompilowując w niego natywną obsługę dwóch kluczowych technologii:
igbinary – moduł odpowiadający za zaawansowaną, w pełni binarną serializację danych strukturalnych.
zstd – algorytm zapewniający bezstratną, ultraszybką kompresję pamięci w locie.
Zastosowanie wysoce zoptymalizowanej paczki phpredis połączonej z obydwoma tymi rozwiązaniami pozwala na zmieszczenie znacznie większej ilości danych w mocno ograniczonych i twardych limitach pamięci RAM per klient (np. 128 MB). Mechanizm ten realnie odciąża dyski i obniża czas generowania żądań (TTFB poniżej 100 milisekund), bez tworzenia „wąskiego gardła” na procesorze. Instalator natywnie wspiera teraz obsługę tych zoptymalizowanych modułów dla wszystkich najnowszych gałęzi PHP (od wersji 8.2 aż do 8.5) na architekturę amd64 (x86_64) oraz arm64 (AArch64).
Autorskie repozytorium pakietów budowane w Poudriere
Ponieważ standardowe repozytoria systemu FreeBSD nie oferują pakietu phpredis skompilowanego z flagami wspierającymi moduły igbinary i zstd, podjąłem decyzję o uniezależnieniu projektu. Na potrzeby instalatora stworzyłem własne, autorskie repozytorium pakietów.
Wszystkie pakiety są kompilowane w całkowicie zautomatyzowanym i izolowanym środowisku Poudriere. Gwarantuje to absolutną czystość kodu, idealne powiązania zależności z najnowszymi bibliotekami systemowymi oraz maksymalną wydajność dostarczanych narzędzi (wymuszone flagi kompilacji).
Repozytorium otwarte dla społeczności
Opracowane pakiety stanowią technologiczny fundament dla instalatora BSNM, ale podjąłem decyzję o udostępnieniu całego repozytorium tych pakietów publicznie już teraz.
Jeśli zarządzasz własnym środowiskiem i chcesz wykorzystać wyżej wymienione moduły (igbinary, zstd oraz zoptymalizowany redis) do przyspieszenia swojego serwera WWW, możesz pobrać i zainstalować moje paczki. Repozytorium jest w pełni kompatybilne i przeznaczone dla serwerów opartych na systemie FreeBSD 15.x-RELEASE w architekturze amd64 i arm64.
Kod projektu oraz pakiety są publicznie dostępne na platformie Codeberg pod adresem:
https://codeberg.org/gielo/bsnm-packages.git
Wszystkie techniczne instrukcje dotyczące tego, jak podpiąć repozytorium do swojego systemu i poprawnie z niego korzystać, umieściłem bezpośrednio w pliku README w powyższym repozytorium.
Ewentualne problemy i błędy, proszę zgłaszać na https://codeberg.org/gielo/bsnm-packages/issues
