Artykuły
Najnowsze informacje na temat naszych serwerów

Najnowsze informacje na temat naszych serwerów

CHESScom
| 26 | Inne

Droga społeczności Chess.com,

w dniu 23 stycznia opublikowaliśmy artykuł, w którym zwróciliśmy uwagę na gwałtowny wzrost zainteresowania szachami i pokazaliśmy, w jaki sposób przełożył się on na tymczasowy brak stabilności naszego serwisu, a zwłaszcza serwera do rozgrywania partii online. Od tamtego czasu, cały czas notujemy coraz większy wzrost aktywności na naszej stronie.

W piątek, 3 lutego, w serwisie Chess.com zarejestrowało się 403 tys. nowych użytkowników. To fantastyczny i niesamowity wynik. Sprawia nam to jednak również pewne problemy. Chcielibyśmy hucznie świętować to, że szachy stają się coraz bardziej popularne, ale szczerze mówiąc, odczuwamy więcej smutku niż radości, ponieważ nasze serwery mają problemy z obsłużeniem ruchu sieciowego w godzinach największego natężenia. Jest nam niezmiernie przykro z powodu problemów, których tak wielu z Was doświadczało w ostatnich tygodniach.

Na szczęście widzimy już światełko w tunelu, dlatego chcemy przedstawić Wam najnowsze informacje na temat tego, co udało się zrealizować w ostatnich dwóch tygodniach. Chcemy również podkreślić, że nie uzyskaliśmy jeszcze takiej stabilności, jaką chcielibyśmy docelowo osiągnąć. Prace nad udoskonalaniem naszej infrastruktury cały czas trwają.

Co się wydarzyło?

  • Przez ostatnich kilka miesięcy ruch na stronie Chess.com wzrósł niemal dwukrotnie. W samym styczniu, liczba aktywnych użytkowników zwiększyła się z 7 do 11 milionów.
  • Dzieje się tak z wielu powodów: nasza aplikacja jest w czołówce (czasami nawet na 1. miejscu) najpopularniejszych aplikacji mobilnych, organizujemy wiele wspaniałych turniejów, jesteśmy bardzo aktywni w mediach społecznościowych, streamerzy tworzą świetne materiały na temat szachów oraz gościliśmy kicię Mittens.
  • Tak duży ruch spowodował przeciążenie naszych serwerów. Dwa najczęściej pojawiające się problemy to błąd 502, oznaczający brak połączenia z bazą danych oraz zrywanie połączenia z serwerem do gry online. Obydwie sytuacje mają miejsce wtedy, gdy nasz serwer jest znacznie przeciążony.
Liczba dziennych rejestracji na Chess.com.
Wzrost ruchu sieciowego w okresie od grudnia 2022 do stycznia 2023.

Co zostało zrobione?

Poradzenie sobie z tak dużym natężeniem ruchu nie jest tak proste jak zidentyfikowanie, a następnie usunięcie jednego „wąskiego gardła”. Rozwiązanie problemu wymaga przeprowadzenia wielu optymalizacji oraz zwiększenia wydajności naszych serwerów. Oto najważniejsze rzeczy, które udało nam się zrealizować przez ostatnie dwa tygodnie.

  • Wydaliśmy ponad 2 miliony dolarów na sprzęt (m.in. serwery www, serwery baz danych, nowy serwer do obsługi gry online, systemy równoważenia obciążenia [Load Balancers]). Większość sprzętu została już zainstalowana, a pozostałe urządzenia zostaną uruchomione w nadchodzącym tygodniu. Choć kwota 2 milionów dolarów może wydawać się bardzo wysoka, to jednak byłaby o wiele wyższa (i nieprzystępna) gdyby cała infrastruktura Chess.com była oparta o rozwiązania chmurowe.
  • W możliwie jak najszybszy sposób dzieliliśmy nasze bazy danych na mniejsze części. Udało nam się podzielić wiele baz danych MySQL oraz zoptymalizować kod, który odpowiada za tworzenie zapytań do tych baz.
  • Zidentyfikowaliśmy i usunęliśmy wiele wcześniej niewykrytych wąskich gardeł.
  • Odkryliśmy, że jedno z połączeń pomiędzy naszym centrum danych a jednym z dostawców rozwiązań chmurowych (a w pewnych przypadkach korzystamy z takich rozwiązań!) osiągnęło swoją maksymalną przepustowość, co prowadzi do gubienia pakietów w czasie największego ruchu internetowego w naszym serwisie.
  • Wprowadziliśmy limit liczby użytkowników nieposiadających wykupionego członkostwa premium, którzy mogą korzystać z naszych serwerów podczas godzin największego natężenia ruchu internetowego. W miarę zwiększania wydajności serwerów, limit jest regularnie powiększany i spodziewamy się, że niedługo zniesiemy go już całkowicie.

  • Rozwiązaniem powyższych problemów zajmował się każdy programista pracujący w Chess.com, który był w stanie pomóc w jakikolwiek możliwy sposób.

Co już udało się zrobić?

Nie możemy jeszcze powiedzieć, że nasza misja zakończyła się całkowitym sukcesem. Cały czas pracujemy nad tym, by osiągnąć taki poziom wydajności, jaki chcielibyśmy uzyskać, ale wprowadziliśmy już wiele widocznych zmian, którymi chcielibyśmy się z Wami podzielić.

  • Zmniejszyliśmy częstotliwość występowania błędu 502 (brak połączenia z bazą danych) o ponad 90%.
  • Również o ponad 90% zmniejszyliśmy częstotliwość występowania sytuacji, w których użytkownicy byli rozłączani z serwerem podczas rozgrywania partii online. Usprawniliśmy też sam proces ponownego łączenia z serwerem.

Co jeszcze pozostało do zrobienia?

W najbliższych miesiącach nadal będziemy wprowadzać wiele dużych i małych usprawnień na naszych serwerach, które mamy nadzieję pozytywnie wpłyną na naszych użytkowników. Oto niektóre ze zmian, którymi możemy się z Wami podzielić.

  • Planujemy dalszą rozbudowę naszej infrastruktury o elementy, na których dostawę jeszcze czekamy, by cały czas zwiększać wydajność naszych serwerów.
  • Cały zespół programistów nadal skupia się na rozwiązywaniu wszelkich pozostałych problemów, co obejmuje dalszą pracę nad bazami danych, optymalizację zapytań, rozdzielanie jednowarstwowych aplikacji na mniejsze części oraz korzystanie z większej liczby usług.
  • Będziemy współpracować z naszym centrum danych oraz dostawcą rozwiązań chmurowych, by wyeliminować ich ograniczenia.
  • Jesteśmy w trakcie zmiany kodu obsługiwania naszego serwera do gry online tak, by w przyszłości zastosować tzw. skalowanie horyzontalne, tzn. by usługa gry online była dostępna na wielu serwerach, zamiast tylko na jednym. Obecnie rozwiązanie to jest w fazie testów (testami objęte są partie rozgrywane przez użytkowników niezalogowanych oraz większość partii towarzyskich). W tym tygodniu testami obejmiemy jednak również część partii rankingowych i mamy nadzieję, że niedługo większość pojedynków rozgrywanych na Chess.com nie będzie obsługiwanych tak jak do tej pory przez jeden ogromny serwer, tylko uda nam się wdrożyć tzw. system rozproszony, oparty na wielu urządzeniach połączonych w jedną całość.

Co robimy, by wszystko wróciło do normy?

Wiemy, że wielu z Was, w tym użytkownicy premium, przegrało swoje partie z powodu zerwania połączenia z serwerem albo nie miało dostępu do usług, za które płaci. Chcielibyśmy to naprawić.

  • W tym tygodniu wprowadzimy automatyczny system zwrotu punktów rankingowych za partie przegrane z powodu niestabilności serwera. Będzie to rozwiązanie tymczasowe, które będzie obowiązywać do momentu rozwiązania głównych problemów.
  • Do końca lutego wszyscy użytkownicy otrzymują darmowy dostęp do Puzzle Battles.

  • Użytkownicy premium otrzymają w tym miesiącu dostęp do nowych kursów autorstwa m.in. GM Magnusa Carlsena, GM Petera Svidlera oraz GM Hou Yifan, które zostaną przeniesione z biblioteki kursów Chess24 do naszej bazy lekcji.

Jak powiedział dyrektor generalny Chess.com, Erik (moment, to przecież ja... To ja napisałem ten artykuł...): „Każdego dnia bardzo mocno doświadczam trzech rzeczy: 1. smutku – za każdym razem, gdy widzę frustrację, jaką odczuwają nasi użytkownicy z powodu niestabilności naszych usług, 2. dumy – z naszego zespołu za to, co udało im się zrobić w tak krótkim czasie, oraz 3. nadziei i pewności – że już niedługo Chess.com będzie o wiele lepszym miejscem niż dotychczas”.

więcej od CHESScom
24-godzinna arena z okazji Międzynarodowego Dnia Szachów

24-godzinna arena z okazji Międzynarodowego Dnia Szachów

Międzynarodowe areny wieloklubowe: wszystkie najważniejsze informacje

Międzynarodowe areny wieloklubowe: wszystkie najważniejsze informacje