Witness node i 32 GB RAMsteemCreated with Sketch.

in #polish6 years ago (edited)

pexels-photo-825262.jpeg

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
https://steemkr.com/witness-category/@deltik/make-your-steem-server-last-longer-with-memory-compression
https://steemit.com/witness-category/@samrg472/zram-and-zswap-the-full-rundown

Photo used from https://www.pexels.com/

Jeżeli podoba ci się moja działalności i chciałbyś mnie jeszcze bardziej wspierać, to możesz oddać na mnie głos poprzez steemconnect:

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.

img

Sort:  

Poczytałbym o tym :

  • co poza satysfakcją daje prowadzenie serwera z witness nodem?
  • jakie są parametry już działającego serwera (procesor, ram, dyski, łącze itd)?
  • na jakim linux stawiałeś i dlaczego ?

Chętnie poczytam następne wpisy na te tematy.

Myślę, że są się zrobić.

Według mnie powinieneś iść nie w zRam, a zSwap. Najlepiej zSwap mieć na SSD, ale wiadomo - to mocno zalecane w przypadku Steem

No właśnie niestety w tym przypadku nie mam ssdków na tej maszynie. W następnym miesiącu dopiero przerzucę się na ssd i większą ilość ramu. Aktualnie najważniejsze jest, żeby serwer nie stał bezczynnie, tylko mógł brać udział w działaniu sieci.

Najlepiej zobacz już 256 - 512GB ramu, by na rok już starczyło

Pewnie znajdę jakiś kompromis, żeby nie zbankrutować xd

Dla witness node/seed node nie ma potrzeby brać nic więcej niż 64GB, obecnie shared file jest na granicy 32GB.

31827652    /dev/shm/shared_memory.bin

256GB+ to rozmiar shm dla full node, czyli zupełnie inny przypadek.

Oczywiście, ale pytanie czy będziemy co 3 miesiące podbijać pamięć RAM średnio 2 krotnie.

Nie przesadzajmy ;-) shared-file 3 miesiące temu przekroczył 16GB, teraz ma 32GB, ale to nie znaczy, że za 3 miesiące będzie miał 64GB. ;-)

Dodatkowo uwzględniając miesięczne koszty utrzymania serwera nie widzę sensu inwestowania w maszynę z >64GB ramu.

Jak uważasz, ale duzi witnessi już teraz kupują maszyny 512GB ramu (przynajmniej dziś był post)

Musisz chyba mylic pojecia... full node != witness node. Nie kojarze nikogo kto mialby 512GB RAMu na hoscie low memory.

I just upvoted You! (Reply "STOP" to stop automatic upvotes). Do społeczności: Jeżeli uważasz że głos został przyznany niesłusznie, przedstaw krótkie uzasadnienie w odpowiedzi do tego komentarza.

Jakie są koszty miesięczne takiego serwera?

Z tego co mi wiadomo to do tej pory, aby utrzymywać taki serwer witnessa, trzeba było płacić około 200 zł. Obecnie, aby utrzymać węzeł potrzebujemy co najmniej około 300 zł miesięcznie. Kluczowym problemem jest ilość pamięci RAM, która służy przechowaniu tam danych bazy danych.

Może powinniśmy się jako większa grupa po prostu miesięcznie zrzucać na taki wydatek?
Z tego co się już orientuję napisał Pan niejednego bota, który przez niejedną pewnie osobę jest już używany. A jakie korzyści miała by taka ewentualna grupa, która zainwestowała by w Pana pracę w tym temacie?
Patrząc na całą zagraniczną stronę steemit wszyscy się organizują i zbierają z tego profity. Może teraz pora na nas?
Im każdy z nas przecież będzie silniejszy tym wszyscy na tym skorzystamy. Wystarczy tylko trochę "gry" zespołowej

Jeżeli chodzi o środki na utrzymanie, to obecnie koszty są akceptowalne, więc z tym nie będzie problemu. Finansuję to przedsięwzięcie z tego co zarobię z artykułów i trochę z prywatnych pieniędzy.
Największym wsparciem witnessa jest oddanie na niego głosu. Nie jestem jedyną osobą w polskiej społeczności, która się tym zajmuje. Jest też także np. @gtg, który jest tu o wiele dłużej i warto też wspomóc go głosem. Korzyści z tego, że ktoś oddał głos na witnessa, to inwestycja w to, że on w przyszłości będzie oddawał mocniejsze głosy naszej społeczności oraz to, że będzie mógł się on skupić na tworzeniu i ulepszaniu narzędzi związanych ze steem. Generalnie na steemie jest tak, że im więcej osób głosuje na witnessa, tym ma on większy udział w przetwarzaniu operacji na blockchainie. Automatycznie taki witness otrzymuje wynagrodzenie za obsługę sieci.
Co do botów, to aktualnie napisałem kilka dosyć prostych botów, ale ten temat będę jeszcze rozwijał, aby boty były bardziej funkcjonalne i uniwersalne.

Dorzuć jeszcze jakiś skrypt do automatycznej aktualizacji price feed, zalecany jest przynajmniej 1 update na 24h, Twój ostatni był 214h temu. Co prawda mediana jest wyliczana tylko z feedu TOP20, ale zgodnie z założeniami, backup witness zawsze powinien być gotowy do przejęcia linii produkcyjnej ;>

Dzięki za wskazówki. Na pewno dodam skrypt, nawet już widziałem jeden napisany w node.

Boost Your Post. Send 0.100 STEEM or SBD and your post url on memo and we will resteem your post on 5000+ followers. check our account to see the follower count.

Please stop spamming in comments or else people may flag you!
Last 50/50 of your comments have content:

Boost Your Post. Send 0.100 STEEM or SBD and your post url on memo and we will resteem your post on 5000+ followers. check our account to see the follower count.

Spam probability: 96.12%

Coin Marketplace

STEEM 0.28
TRX 0.13
JST 0.032
BTC 60793.36
ETH 2909.65
USDT 1.00
SBD 3.64