Menu

#1 Zapychanie ggrelay'a

open
None
5
2005-02-17
2005-01-15
No

ggrelay łatwo się zapycha przy awarii serwera gg (co
zdarza sie dość często). Wystarczy że jeden użytkownik,
gdy serwer gg padnie, bedzie próbował się połączyć,
zajmie wszystkie wolne miejsca i zazwyczaj i tak się
nie połączy. Wszystkie połączenia ggrelay'a beda w
stanie TIME_WAIT - i tak mozna sobie czekać (3 dni
kiedys czekalem i nic) :) pomaga wtedy tylko restart
ggrelay'a. Troche to wkurzajace jak nie ma sie chwilowo
dostepu do serwera. Myśle że problem mozna by rozwiązać
dodając opcje limitu na konkretne ip w sieci lokalnej
(np 10 połączeń), a przy przekroczeniu limitu,
rozłączało by najstarsze połączenie i w tamto miejsce
łączyło na nowo.
Z kosmetycznych błędów - ggrelay 1.3-D przedstawia się
jako 1.3-C, ale to już w niczym nie przeszkadza.

Discussion

  • Szymon Acedanski

    Logged In: YES
    user_id=567520

    Proponuję prostsze rozwiązanie - po prostu sprbuję
    wprowadzić jakiś sensowny limit na czas ustanawiania
    połączenia. Tak w ogle to ggrelaya czeka jeszcze
    restrukturyzacja - chciałbym wyeliminować osobne wątki
    służące jedynie do ustanawiania połączenia... jednakże pki
    co sesja się zbliża więc nie mam czasu na większą przerbkę.
    Sprbuję wspomnianego prostszego rozwiązania.

     
  • Szymon Acedanski

    • assigned_to: nobody --> accek
     
  • Krzysztof Bembnista

    Logged In: YES
    user_id=505380

    Ustawienie limitow czasowych na TIME_WAIT nic nie dalo:( gg
    potrafi sobie zrobic kilkaset polaczen na sekunde:( liczba
    polaczen z jednego ip do ggrelaya czesto dochodzi do 4000!
    Poza tym po takim przepchaniu, jak polaczenia sie
    pozamykaja, to ggrelay i tak nie odpowiada - w takim
    przypadku trzeba zabic proces ggrelaya i uruchomic
    ponownie-efekt jest taki jakby serwer gg byl caly czas
    padniety, jak szybko przekieruje na bezposredni - gg dziala,
    wroce spowrotem - gg nie dziala.

     
  • Szymon Acedanski

    • status: open --> closed-fixed
     
  • Szymon Acedanski

    Logged In: YES
    user_id=567520

    Dodalem mozliwosc ustawiania sensownych timeoutow. Nowa
    funkcjonalnosc jest w ggrelay 1.4

     
  • Szymon Acedanski

    Logged In: YES
    user_id=567520

    Jesli chodzi o to ggrelay 1.4 to sciagnij je jeszcze raz
    (jesli juz probowales), bo przed momentem wrzucilem nowe
    wydanie 1.4 :)

    Tak poza tym to czy na pewno GG otwiera te 300
    polaczen/sekunde czy moze jakies inne syfy? Moze zatem
    wpisac w iptables regulke na limitowanie ilosci otwieranych
    polaczen do ggrelaya na sekunde (chocby na probe).

    Tak czy inaczej napisz, jakie sa efekty prob.

     
  • Szymon Acedanski

    • status: closed-fixed --> open-fixed
     
  • Krzysztof Bembnista

    Logged In: YES
    user_id=505380

    ggrelay-1.4 sciagalem o 00:03:) (tar.gz) Poczekamy teraz na
    pad gg, symulowac nie bede bo mnie ludzie wyklna:) Jesli
    chodzi o taka ilosc polaczen to na pewno gg - po wylaczeniu
    gg ruch od razu znika (sprawdzalem przy uruchomionym
    tcpdumpie, filtr tylko na jeden ip lokalny i port 8074).
    Czasem otwiera tylko kilkadziesiat polaczen przy braku
    sprawnego serwera gg, a czasem duzo wiecej. Ale to juz gg ma
    swoje bledy.

    Co do iptables - przed chwila tez o tym pomyslalem, ale
    wyproboje w godzinach dziennych:)

     
  • Szymon Acedanski

    • status: open-fixed --> pending-fixed
     
  • Szymon Acedanski

    Logged In: YES
    user_id=567520

    No to czekamy na wyniki...

     
  • Krzysztof Bembnista

    Logged In: YES
    user_id=505380

    Niestety chyba niewiele to dalo:( przynajmniej u mnie.
    Dzisiaj mialem okazje potestowac. Wiec, po padze serwera gg,
    jeden klient zrobil kilka tysiecy polaczen (szlo to moment,
    ale dopiero po parunastu minutach po awarii serwera). Po ok
    godzinie sprawdzilem serwery gg, czy sa dostepne (bez
    udzialu ggrelay, z mojego serwera polaczylem sie poprzez
    telnet na port 8074 kilku serwerow, bylo ok, polaczylo sie
    momentalnie i oddalo mi 4 bajty) i odcialem dostep tej
    osobie. Po ok 30s (domyslny limit) wygladało normalnie,ale
    nie chcialo ciagle sie polaczyc... poczekalem jeszcze z 10
    minut i nic. Zrobilem restart ggrelaya i wszysto zaczelo
    normalnie dzialac. Z tego co mam w logach (aktywnosc
    serwerow gg sparwdzam osobnym programem, prosty klient-bot
    oparty na libgadu, ktory nie pracuje poprzez ggrelay) serwer
    gg byl osiagalny duzo wczesniej, tzn ok 1g 15min przed
    restartem ggrelaya. Wyglada to tak, jakby po awarii serwera
    gg i zrobienu przez jakiegos klienta wielu polaczen, ggrelay
    sie zawieszal (moze jeden watek, do obslugi polaczen z
    serwerm gg, niewiem...).

     
  • Krzysztof Bembnista

    • status: pending-fixed --> open-fixed
     
  • Szymon Acedanski

    • status: open-fixed --> open
     
  • Szymon Acedanski

    Logged In: YES
    user_id=567520

    Ok, sorki, ze tak dlugo nic tutaj nie napisalem, ale ciezko u mnie z czasem w
    ostatnim czasie :)

    Przygotowalem kolejna wersje tesowa, ktora proponuje sprawdzic w
    najblizszym czasie.

    http://www.mimuw.edu.pl/~accek/ggrelay-test03.tar.gz

    Jesli to nie pomoze, to bedzie trzeba chyba porzadniejsza armate wyciagnac -
    mam gdzies jeszcze specjalna wersje ggrelaya, ktora niegdys sluzyla mi do
    debugowania wszelkich wyciekow pamieci, ale mysle, ze bedzie mozna ja
    dostosowac i do tego.

     
  • Krzysztof Bembnista

    Logged In: YES
    user_id=505380

    Niestety nic to nie da?o:( wczoraj, 26-Luego-2005, gg pada?o prawie
    ca?y dzie?, ggrelay zapcha? si?, omin??em go, ale nie wy??czy??m.
    Gdy gg zacz??o ju? dzia?a?, wrzuci?em reg?ke spowrotem. Niestety
    nie uda?o si? po??czy? z gg:( Wygl?da to tak jakby po przepchaniu
    ggrelaya stawa? si? g?uchy na po??czenia, pomimo znikni?cia ju?
    wszystkich po??cze?. Trzeba b?dzie chyba u?y? tej "armaty":)

     

Log in to post a comment.