Nie jesteś zalogowany na forum.

Ogłoszenie

Witaj na forum Riders Of The Rising Sun...

» Jeśli jeszcze nie jesteś naszym użytkownikiem, dołącz do nas i zarejestruj się już teraz!
» Osoby które są chętne aby wstąpić do klubu zapraszamy do działu "nabory".
» Osoby które są w klubie mają dostęp do ukrytych działów i funkcji forum.


» Nowy dział - GRAND THEFT AUTO V

#1 3 marca 2017 (23:08)

POINTMAN
MODERATOR
Skąd: Zamość aka. ZMC
Data rejestracji: 11 grudnia 2010
Liczba postów: 4,404

Testowanie połączenia z serwerami World of Tanks

Witam,

dziś chciałem się podzielić wiedzą o tym, jak sprawdzać i radzić sobie z dziwnym zachowaniem WoTa, podczas gdy nasz internet działa normalnie. Nie raz nie dwa pewnie każdemu zdarzyło się, że podczas bitwy nasz ping szlag trafił i albo mamy lagi, albo w ogóle ciężko jest grać bo co chwilę ping skacze do sporych wartości. Dużo osób w takich chwilach przeklina wszystko w koło, albo po prostu zamyka worldoftanks.exe i kończy grę nie znając powodu takiego stanu rzeczy. I tu jest błąd, bo czasami wystarczy sprawdzić czy problem leży po naszej stronie czy może któryś serwer z "klastrze" nie domaga.

Zacznijmy więc od słowa wyjaśnienia.

Czym jest klaster?
To uogólniając grupa "połączonych" ze sobą serwerów, które przechowują te same dane i "pracują" na nich w tym samym czasie wspomagając wspólne obliczenia. Po co one? Ponieważ jeden serwer nie dałby rady obsługiwać kilku tysięcy połączeń, czyli zalogowanych graczy, a tak kilka serwerów dzieli się tymi połączeniami i dzielą się operacjami, coś jak oddział bankowy(klaster), który ma parę okienek(serwerów) i przyjmuję klientów(połączenia/graczy) którzy mogą np. przelewać miedzy sobą lub gdziekolwiek pieniądze(czyli dane) i mogą to robić w tym samym czasie nie przeszkadzając sobie i wymieniając się transakcjami. To taki prosty przykład.

Wiemy już jak działa 1 oddział banku czyli klaster, ale na "serwerze" EU mamy takich 2, dlaczego? Ponieważ jak i w oddziale banku, nawet jeśli okienek jest dużo, to istnieje limit osób które się zmieszczą w środku samego oddziału. Dlatego też potrzebne są inne klastry z tym że na innym klastrze jest inna sytuacja i jeśli z jednego oddziału banku udamy się do drugiego jego oddziału, to będziemy musieli zacząć transakcje od nowa, bo operacje jakich dokonywaliśmy w pierwszym oddziale zostały przerwane z chwila gdy go opuściliśmy by przejść do drugiego oddziału. Oczywiście, nasze dane, czyli pieniądze są dostępne w drugim oddziale, ale t co zrobiliśmy w 1, zostało już przerwane i musimy zacząć od nowa.

To tak mam nadzieje ogólnie wyjaśnione już jest jak działają klastry. Nie wnikajmy w to bardziej na razie square

Zatem, jak nie trudno zauważyć, to jak szybko zostaniemy obsłużeni zależy od klastra/oddziału banku. Im oddział jest dalej, tym dłużej zajmie nam wyjście z domu i dokonanie przelewu. Do tego w samym klastrze/oddziale banku też możemy się spotkać z sytuacją, że serwer/okienko może obsługiwać nas nieco szybciej lub wolniej niż inne, albo może dojść do sytuacji że serwer/okienko będzie miało przerwę i stracimy połączenie/okazje do załatwienia sprawy, podczas gdy serwer/okienko obok będą pracować normalnie. Zapewne każdy już miał tak, że podczas gdy u nas lub paru osób ping skakał to przeciwnik lub inni z teamu grai sobie normalnie i sytuacja opisana wcześniej może właśnie to przedstawiać.


I tu dochodzimy do sedna sprawy, podczas logowania na klaster EU1 lub EU2 następuję mała loteria, pod jaki serwer na klastrze zostaniemy przypisani do obsługi nas. Zazwyczaj nie jest to problem, bo jeśli wybieramy klaster z najmniejszym pingiem to powinno być ok, ale czasem są niespodzianki jak np. niedziałający jeden serwer w klastrze, lub nawet więcej gdzie faktycznie działa tylko jeden. Powody są rożne, oszczędzanie energii, chwilowe przeciążenie, cokolwiek w zasadzie i jak mamy pecha to się załapiemy na spore problemy z pingiem.

Najprościej jest po prostu się wylogować i zalogować ponownie, by przydzieliło nam mniej problematyczny serwer w klastrze, ale czasem po prostu nie warto logować się na ten sam klaster, bo np. 3 z 4 serwerów w nim nie chcą z nami nawiązać połączenia.

Co zrobić, jak żyć?
Najprościej sprawdzić szybko pingi na wszystkie serwery w klastrach square Informacja o adresach Ip serwerów jest dostępna na stronie wiki Wargaming World of Tanks >> http://wiki.wargaming.net/en/Servers

Nas interesują adresy IP serwerów EU czyli
EU1:
S1 92.223.1.92   S2 92.223.1.102    S3 92.223.1.112   S4 92.223.1.122
EU2:
S1 185.12.240.100   S2 185.12.240.110     S3 185.12.240.140    S4 185.12.240.15

Mamy adresy IP ale co z nimi zrobić? Najprościej wcisnąć kombinacje:
"klawisz Windows + R",
wpisać:

cmd

,
a po jego odpaleniu wpisać komendę:

ping adresIPserweraWoT

.

Tylko tyle trzeba by sprawdzić czy serwer WoTa działa i jaki mamy ping do niego. No ale są dwa problemy, po pierwsze w ten sposób za każdym razem dostaniemy tylko 4 pingi. To mała próbka, która może czegoś nie "załapać". Jak to poprawić? Pisząc komendę w CMD w taki sposób:

ping -n 10 adresIPserweraWoT

.
W ten sposób otrzymamy 10 pingów na serwer, serwerowi to nie zaszkodzi, a my dostaniemy nieco bardziej miarodajną próbę stabilności i wydajności serwera dla naszej lokalizacji. No ale problem numer dwa wciąż nie jest rozwiązany, a w sumie to nawet dwa i trzy, bo musimy za każdym razem wpisywać(lub bardziej obeznani wkleją adresy IP) w CMD do komendy i odpalać ją za każdym nowym serwerem do testu. Nie mówiąc już o tym że trzeba za każdym razem uruchamiać CMD by w ogóle zacząć sprawdzać ping. A co gdyby dało się po prostu w 2 klikach sprawdzić pingi na każdym serwerze w klastrze a nawet wszystkich klastrach?

PowerShell przybywa na ratunek! Od Windows 7 PowerShell jest w systemie obok CMD, ale niewiele osób z niego korzysta a sporo nawet nie wie że coś takiego w systemie ma. A to spory błąd, bo w przeciwieństwie do CMD, posługiwanie się PowerShell jest czasami wręcz banalnie proste i wiele rzeczy można zrobić prościej dzięki niemu.

No ale do rzeczy. To co za chwile zobaczycie to ściśle tajny kod PowerShell, który w 3 kliknięciach pozwoli sprawdzić stan wszystkich serwerów we wszystkich klastrach EU. Jesteście gotowi? Tak? No to lecimy

Write-Host "EU1: `n"

"`nServer 92 `n"
Test-Connection 92.223.1.92 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 102 `n"
Test-Connection 92.223.1.102 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 112 `n"
Test-Connection 92.223.1.112 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 122 `n"
Test-Connection 92.223.1.122 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32

Read-Host "`nEU2"

"`nServer 100 `n"
Test-Connection 185.12.240.100 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 110 `n"
Test-Connection 185.12.240.110 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 140 `n"
Test-Connection 185.12.240.140 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 150 `n"
Test-Connection 185.12.240.150 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32

Read-Host -Prompt "`nPress Enter to exit"

To oczywiście nieco "przypudrowany" kod, by łatwiej było zobaczyć który serwer jest sprawdzany. Szczerze tak jak wcześniej przy CMD, nie będę omawiał co tu się dzieje dokładnie, po prostu ważne że to działa i tym razem już nic nie trzeba podstawiać, więc jest to gotowy kod do uruchomienia. Tak, to jest prosty skrypt sprawdzający serwery w klastrach EU pod kątem problemów z pingiem. I teraz każdy kto to przeczytał może się nim posługiwać. No może prawie. kod skryptu jest, ale jak kopiujecie kod skryptu, to jeszcze tak po prostu go nie odpalicie wklejając byle gdzie.

Jak odpalić ten skrypt?
To dość proste zadanie, trzeba tylko odpalić sobie Notatnik(lub Notepad ++), wkleić kod i zapisać w następujący sposób:
97913871256207590076.jpg
Czyli nazywamy nasz plik jak chcemy, ja nazwałem "WoT_Test" dodając najważniejsze na końcu, rozszerzenie ".ps1" oraz zmieniamy typ na "wszystkie pliki". Jeśli dobrze nam poszło, to plik powinien się dać uruchomić jako skrypt PowerShell po kliknięciu go Prawym Przyciskiem Myszy jak niżej widać:
15804092872124001157.jpg
Jeśli w menu kontekstowym PPM mamy "Run with PowerShell" to teraz już tylko klikamy tą opcje Lewym Przyciskiem Myszy i patrzmy jak skrypt za nas sprawdza pingi na wszystkich serwerach klastra EU1 z pauzą na potwierdzenie "Enterem" chęci sprawdzenia też serwerów w klastrze EU2.

Jako że gram najczęściej na EU1, taki sposób jest dla mnie wygodniejszy, ale Ci co wolą sprawdzać od razu wszystkie niżej mają do tego kod:

Write-Host "EU1: `n"

"`nServer 92 `n"
Test-Connection 92.223.1.92 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 102 `n"
Test-Connection 92.223.1.102 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 112 `n"
Test-Connection 92.223.1.112 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 122 `n"
Test-Connection 92.223.1.122 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32

Write-Host "`nEU2"

"`nServer 100 `n"
Test-Connection 185.12.240.100 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 110 `n"
Test-Connection 185.12.240.110 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 140 `n"
Test-Connection 185.12.240.140 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 150 `n"
Test-Connection 185.12.240.150 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32

Read-Host -Prompt "`nPress Enter to exit"

Oraz Ci co wolą grać na EU2 i chcieli by na nim najpierw sprawdzać z pauza przed EU1:

Write-Host "EU2"

"`nServer 100 `n"
Test-Connection 185.12.240.100 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 110 `n"
Test-Connection 185.12.240.110 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 140 `n"
Test-Connection 185.12.240.140 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 150 `n"
Test-Connection 185.12.240.150 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32

Read-Host "`nEU1: `n"

"`nServer 92 `n"
Test-Connection 92.223.1.92 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 102 `n"
Test-Connection 92.223.1.102 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 112 `n"
Test-Connection 92.223.1.112 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32
"`nServer 122 `n"
Test-Connection 92.223.1.122 -Count 10 -Delay 1 -TTL 255 -BufferSize 16 -ThrottleLimit 32


Read-Host -Prompt "`nPress Enter to exit"

W czasie pauzy by przerwać skrypt i zakończyć sprawdzanie wystarczy wcisnąć:
"Ctrl + C".
Każdy skrypt przed wyjściem by nie zniknął po skończeniu i dało się spokojnie zobaczyć wyniki wymaga potwierdzenia chęci wyjścia wciśnięciem klawisza:
"Enter".

A tak wygląda efekt końcowy pierwszego kodu jaki dziś pokazałem big_smile
50830356236381529259.jpg
Tylko 2 kliknięcia i mamy wyniki jakie nas interesują. Oczywiście tym razem wyszło idealnie dla EU1, ale EU2 już tak sypało błędami na czerwono dla mnie z 3 pierwszych serwerów klastra, że tylko ostatni serwer klastra EU2 nadawał się do gry dla mnie yikes
18675726828983496800.jpg
Jak wam też będzie jakiś tak na czerwono walił, to módlcie się byście trafili na te lepsze w klastrze, ale jak 3 z 4 serwerów klastra są czerwone, to odpuście sobie grę na tym klastrze lepiej, taka rada square

No trochę tego się naskrobało, ale teraz już chyba wiadomo jak sprawdzić czy problem leży po naszej stronie czy serwerów WoTa square


WoT:(Pref. EU1) Pointman0 | Armored Warfare: Pointman0 |Steam: POINTSHADOW
3RIDE4LIFE!87642050244034697145.png

Offline

Reklama

Stopka

▲ W GÓRĘ  |  2010-2017 © ROTRS.pl All rights reserved. DESIGNED BY NITRODESIGN.EU