Zmiany

Problem:

Ostatnio branża IT i oprogramowanie przeznaczone na strony internetowe uległy znacznym zmianom, które niestety sprawiły, że utrzymanie średniego poziomu funkcjonalności, jakiego doświadczyliśmy, stało się trudne.

Dlaczego? Oto kilka przykładów:

  1. Aby nasze forum działało poprawnie, niezbędne jest zastosowanie OpenSearch lub ElasticSearch. Minimalna ilość RAM potrzebna do prawidłowego funkcjonowania tego modułu to aktualnie 4 GB, zalecane jest jednak 8 GB. Starsze wersje radziły sobie z mniejszą ilością pamięci, ale niestety były podatne na awarie.

  2. W ostatnim czasie coraz więcej oprogramowania opiera się na modułach, które świetnie sprawdzają się w przypadku dużych projektów, ale są trudne do zastosowania w małych i średnich, ze względu na duże zapotrzebowanie na pamięć. Ponadto, nie można ich łatwo zaimplementować na serwerze, który używaliśmy przez lata (MyDevil).

  3. Wiele programów przeszło na model subskrypcyjny, co może być uciążliwe. Z kolei niektóre usługi, takie jak ElasticSearch, są dostępne w chmurze, ale są bardzo kosztowne (90 USD miesięcznie za najtańszy pakiet).

Jak to wyglądało u nas:

MyDevil przez długi czas sprawdzał się całkiem dobrze, ale niestety stał się ślepą uliczką. Uruchamianie różnych programów stało się coraz trudniejsze, a niektóre z nich były niestabilne.

Od około 9 miesięcy forum działało na CX21 od https://www.hetzner.com/cloud. Miesięczny koszt to około 6 euro, co było akceptowalne. Niestety, mimo kilku prób zainstalowania ElasticSearch 4 GB na całym serwerze, okazało się to niewystarczające. Nawet po zmianie konfiguracji, czasami brakowało pamięci, co powodowało restart niektórych usług i kilkuminutowe przerwy w działaniu forum. Nawet lekka dystrybucja k8s zużywała trochę pamięci. Próby rozbudowy serwera napotykały na problemy. Po 2-3 miesiącach zdałem sobie sprawę, że to nie będzie dobre rozwiązanie. Podniesienie RAM-u do przynajmniej 16 GB wydawało się niezbędne, ale znacząco zwiększało koszty.

Problemem był również fakt, że czasami potrzebujemy dużej ilości miejsca, na przykład do przesyłania dużych plików z modami. Ostatecznie trafiają one na stosunkowo tani serwer, ale najpierw muszą być przekazane na serwer, na którym działa główna aplikacja (wiem, można zamontować S3 lokalnie, ale były z tym problemy). Dlatego od pewnego czasu pliki wrzucam prawie ręcznie, kiedy @Agrael daje znać.

Ostatnio zastanawiałem się, czy optymalnym rozwiązaniem nie byłaby hybryda. Podstawowe funkcje mogłyby działać na zewnętrznym serwerze, a dodatkowe moduły, które potrzebują dużo miejsca lub pamięci, mogłyby działać na serwerze u mnie w domu. Koszt 64 GB RAM-u czy dysków kilka TB nie stanowiłby dziś problemu. Koszty związane z prądem wyniosłyby około 30-50 zł miesięcznie. Rozwiązanie wydawało się dobre, a awaria jednego z serwerów skutkowałaby najwyżej chwilowym brakiem dostępu do niektórych funkcji, na przykład wyszukiwarki.

Niestety konfiguracja i wiele innych aspektów okazały się dużo bardziej skomplikowane i problematyczne. W międzyczasie pojawił się pomysł na użycie darmowego serwera od Oracle Cloud, o następujących parametrach:

 

Ostatecznie dziś bo wielu nieudanych próbach udało się uruchomić taką hybrydę. Główny serwer to darmowa maszyna z Oracle Cloud. Niestety nie ma ona zbyt rozbudowane mechanizmu kopii zapasowych a Oracle ponoć lubi czasami kasować maszyny bez powodu (takie uroki tak dobrej maszyny za darmo). Dlatego też cały czas wszystkie dane są replikowane na moje maszyny w domu. Podejrzewam że to nie koniec. Najbardziej obawiam się jak taka replikacja wpłynie na wydajność. Forum teraz działa wolno ale mam nadzieję że to głównie z powodu trwającej replikacji bazy danych oraz czystego cache. Szczególnie wolno jeszcze działają operację które powodują dużo zapytań do bazy. Proszę o zgłaszanie wszelki problemów.

Wyszukiwarka jeszcze jest po staremu. Nie chce wrzucać nic co dodatkowo teraz jeszcze obciąży replikację.

 

Na koniec coś do poczytania:

https://forum.invisionize.pl/topic/55210-informacje-zbiorcze-o-tym-co-nadchodzi-w-relatywnie-najbliższym-czasie

Niestety model licencyjny IPB zmienia się na jeszcze bardziej niekorzystny. Będzie trzeba podjąć jakieś decyzja bo niestety trzeba będzie zrobić aktualizacja niedługo :disappointed_face:

 

 

 

Aktualizacja z dziś:
 

Przetestowałem dziś radzenie sobie z restartem całości. Wyszło jako tako. Z jednym serwisem po problemie był problem przez to kilka minut forum było niedostępne. Mniej więcej wiem gdzie jest problem i spróbuje go naprawić.

Odnośnie wydajności, znacząco podniosłem ilość dostępnej pamięci dla bazy danych. Niestety ile to pomoże dowiemy się dopiero za jakieś 12 godzin.

 

EDIT:

Zaraz po tym jeszcze spróbowałem zmienić jedna rzecz i wszystko się wysypało. Sytuacja chyba opanowana

1 polubienie

Poranna aktualizacja:

Coś się w nocy popsuło i niestety to podobny problem już drugi raz. Mianowicie zapisy na storege timeoutują i baza danych przechodzi w tryb read only. Restart pomaga no ale potem trzeba chociaż godziny na jaką taką wydajność.

Dobra nowina jest taka że prawdopodobnie jest to mocno powiązanie z wolnym dodawaniem postów.  Mam teraz logi to mogę przejrzeć co się dzieje, może to jakiś problemy sieciowy. Jak uda się ustalić co się stało to może naprawię wolne dodawanie postów.

 

Mam też nadzieję że po “docieraniu” docelowo będzie wszystko działać lepiej.

1 polubienie

Aktualizacja z dziś:

Nie mam jeszcze dobrego pomysłu na problem wolnego storagu przy zachowaniu przyzwoitego bezpieczeństwa danych. Dziś trochę ruszyłem tematu poprawy backupu tak żeby robić go częściej bez obciążania serwera.

Odnośnie wydajności samej strony ustawiłem innodb_flush_log_at_trx_commit=0. Baza nie czeka na zapis danych na storage (nie używa nazwy dysk bo to realnie 3 dyski). Jest lepiej, koszt jest taki że w razie crash dodane dane w ciągu ostatnich kilku sekund mogą zniknąć. Cóż, nie jest to dobra ale z drugiej strony forum to nie system bankowy gdzie byłoby to nie do przełknięcia.

Problem jaki jeszcze też na pewno zostaje to czasami dość losowo jakieś operacje trwają bardzo długo. Czasami nawet 30 sekund. Kolejna próba zrobienia dokładnie tego samego udaje się w 3 sekundy albo i mniej.

1 polubienie

Aktualizacja z dziś:
 

  • Backupy plików został w pełni włączone. Co dwie godziny wszystkie istotne dany z serwera są kopiowane na inny.

  • Dalsze walka z kiepską wydajnością. Raczej to że storege jest głównym problemem jest już pewne. Dziś zresetowałem serwer główny żeby przygotować się do przejścia na inny backend. Planuje użyć longhorma który powinien już niedługo być kompatybilny z tym co już jest: https://github.com/longhorn/longhorn/issues/3161. Po restarcie bardzo długo były problem z aktualnie używam openebs który się zablokował w dziwnym stanie. Kolejne restarty nie powinny być już wymagane w najbliższym czasie. Znowu przez kilka godzin forum będzie działało wolniej niż przed restartem.

 

1 polubienie

Aktualizacja na dziś:

Przeniosłem dziś cały storege na longhorn. Zeszło trochę ale wydaje się aktualnie że większość problemów rozwiązana.

Pora powoli uruchamiać pozostałe wyłączone elementy.

 

Aktualnie nie jest używana nawet połowa ramu głównego serwera więc jeszcze jest obszar na optymalizacje:

 

image.png.17f10d0f5c368981f3dc3012925dc071.png

5 polubień

Aktualizacja z dziś i wczoraj:

Wczoraj zrobiłem test jak zachować się forum jak serwer u mnie w domu padnie. Niezbyt dobrze bo po kilku minutach forum też przestało działać.

Spodziewałem się problemów bo były tylko dwa serwery kontrolne a żeby zachować kworum muszą dogadywać się ze sobą więcej niż połowa. Jednak raczej oczekiwałem tylko zablokowania możliwości wprowadzania zmian w klastrze a nie całkowitej blokady strony. Jeden serwer kontrolny to też słaby pomysł bo jak oracle skasuje główny darmowy to naprawa potrwa długo.

Dziś już rozwiązałem problem dokładając 3 serwer w hetznar. Najsłabszy jaki jest, byleby zachować kworum jak padnie sieć u mnie. Przetestowane i działa jak powinno. Kosz samego z serwer podniósł się z 0 do 4 euro na miesiąc.

Dalsze plany:

Włączanie kolejny modułów które musiałem wyłączyć bo brakowało zasobów. Discord, wyszukiwarka lepsza itd.

… ale dziś już tylko True Stalker. Ilość przerw w działaniu forum od teraz powinna być minimalna.

2 polubienia

Dziś rano aktualizowałem IPB. Poszło dość sprawnie i nie jestem świadomy żadnych problemów aktualnie.

Dziękuję  za opłacanie licencji.

1 polubienie

3 godziny temu, portals napisał(a):

Dziś rano aktualizowałem IPB. .

A ja akurat pisałem posty :grin: i już :smiling_face_with_horns::smirking_face:

1 polubienie

Ciężko znaleźć lepszy termin na takie przerwy niestety :(.

Najważniejsze, żeby “zahamować” padnięcia strony. To jest - delikatnie mówiąc - dosyć upierdliwe. 

Podejrzewam że będzie to zdarzało się już coraz rzadziej. Problemy padnięć był różne i część naprawiona jest już ostatecznie. Niektóre są jeszcze nie jasne, a część wymaga dalszej analizy. Plus panuje skonfigurować alarmy na swój telefon żeby dostać informacja jak pojawia się problem przed wyłączeniem forum (np. problem z puchnięciem bazy danych).

1 polubienie