English - In short
As a new witness I bought server with only 32 GB RAM for witness node and now I struggle to keep it working until new month occurs. I had to use zram and I had other problems related to this situation and software. YAY Murphy law works. Now I wait for rebuild steem db in RAM and hope that it's going to work :)
Polish
Cześć, w tym artykule chciałbym opisać jak wygląda problem przed jakim stanąłem przy prowadzeniu serwera z witness nodem.
Jak już jakiś czas temu pisałem, postanowiłem zacząć swoją przygodę z byciem witnessem. Kupiłem serwer, przygotowałem oprogramowanie, uruchomiłem i myślałem, że to wszystko. Niestety życie zweryfikowało moje przekonania.
Pierwsze na co się natknąłem, to informacja, że zakupiony serwer już nie jest wystarczający do prowadzenia wezła w sieci steem i niedługo blockchain przekroczy ilość transakcji zajmujące około 32 GB. Ale pomyślałem, że jeszcze trochę wytrzymam. Oczywiście prawo Murphy'iego zadziałało, gdyż pamięci zabrakło już po jakimś tygodniu. Hmm, jestem w sytuacji, gdzie mam serwer od tygodnia i nie będę przecież kupował serwera jeszcze raz i wydawać tym razem nawet więcej (min. 64 GB RAMu). Dlatego też musiałem znaleźć jakieś inne rozwiązanie problemu. Jakiś czas temu czytałem o takim rozwiązaniu jakim jest użycie oprogramowania zwanego zram.
Zram to rozwiązanie, gdzie program tworzy pewny plik w obszarze SWAP i wstawia go do pamięci ram. Taki utworzony obszar kompresuje dane przekazywane do pamięci SWAP i trzyma je w szybkiej pamięci tymczasowej RAM. Kluczem w tym programie jest kompresja, czyli zmniejszenie rozmiaru danych. Oczywiście to rozwiązanie wymaga większej aktywności procesora, gdyż proces kompresji wymaga dodatkowego wysiłku procesora.
Jak można się domyśleć, nie obyło się bez problemów. System operacyjny jaki jest postawiony posiada niestandardowy kernel, który nie wspierał oprogramowania zram. Kernel, to powiedzmy jest pewno jądro, taki mózg systemu linux. Moim pierwszym krokiem to oczywiście był googiel i co zrobić z tym fantem. Trzeba było zainstalować standardowy kernel, przerzucić stary kernel i zaktualizować system bootowania grub. Po tych akcjach trzeba dać restart i wszystko. Heh, no prawie. Wpisuję reboot a tu serwer przestał odpowiadać xd Hmm, co tu mogło się stać. Okazało się, że trzeba było zrobić "twardy restart" maszyny, żeby zmiany zaskoczyły.
Po zainstalowaniu zram zacząłem czytać trochę o konfiguracji i postanowiłem, że go po prostu uruchomię. Po uruchomieniu, zram przydzielił sobie połowę zasobu RAM. Mi to w zupełności wystarczy. Teraz w htopie, czyli podglądzie statystyk serwera widzę pamięć wymiany (SWAP) ustawioną na 16 GB, czyli jesteśmy w domu. Pozostało teraz tylko podmienić wartość określającą wielkość pamięci bazy danych blockchainu w RAMie. Zostawiłem to tak jak było i co, i oczywiście node się zawiesił, bo zabrakło mu pamięci w pliku bazy danych (oczywiście node potrzebuje więcej niż 32 GB a ja zostawiłem na 32 GB). Regeneracja bazy danych w ramie trwa chwilę, więc za każdym razem muszę czekać sporo czasu (gdzieś kilka godzin). Zwiększyłem pamięć bazy danych w ramie i aktualnie czekam na rezultat.
Jestem bardzo ciekawy czy uzyskam ponownie działający węzeł witnessa czy jednak będę musiał znaleźć inne rozwiązanie. Ta historyjka dokładnie pokazuje, że jak coś złego się może stać, to pewnie się to stanie, szczególnie jak żyjesz na krawędzi :D Także jak na razie zapowiada się ciekawa droga do zostania witnessem obsługującym transakcje w sieci steem. Każdy głos na danego witnessa zwiększa jego udział w obsłudze transakcji w blockchainie steem.
All links I had to use to fix my issues:/Wszystkie linki użyte, żeby potencjalnie rozwiązać problem:
https://askubuntu.com/questions/459296/could-not-open-moddep-file-lib-modules-3-xx-generic-modules-dep-bin-when-mo
http://webcache.googleusercontent.com/search?q=cache:ZW2M45ZXSK0J:https://askubuntu.com/questions/871336/switching-from-ovh-kernel-to-default-kernel-without-reinstalling-ubuntu/871417&num=1&hl=pl&gl=pl&strip=1&vwsrc=0
@deltik/make-your-steem-server-last-longer-with-memory-compression
@samrg472/zram-and-zswap-the-full-rundown
Photo used from https://www.pexels.com/
https://v2.steemconnect.com/sign/account-witness-vote?witness=grzegorz2047&approve=1
Lub poprzez stronę
https://steemit.com/~witnesses wpisując mój nick tak jak poniżej.