Skocz do zawartości
Zaloguj się, aby obserwować  
peres.pro

zapytania w czasie rzeczywistym

Polecane posty

Witam serdecznie,

poszukuje programu na debiana który będzie w czasie rzeczywistym pokazywał mi zapytania do bazy które dana aplikacja wysyła, mam silnik do pewnej gry który nie jest zbyt zoptymalizowany jeżeli chodzi o przeciążenie mysql'a coś podobnego do mytop bo w mytop nie ogarniam konfiguracji.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No bo na serwerze nic się nie dzieje - masz jedno połączenie z mysqladmina i drugie "spiące" skryptu (które spadnie po osiągnięciu timeoutu).

 

Jak pojawią się jakieś inne połączenia to w polu info wyświetli się treść zapytania, które jest realizowane. Więcej chyba nie potrzeba do szczęścia :-).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No bo na serwerze nic się nie dzieje - masz jedno połączenie z mysqladmina i drugie "spiące" skryptu (które spadnie po osiągnięciu timeoutu).

 

Jak pojawią się jakieś inne połączenia to w polu info wyświetli się treść zapytania, które jest realizowane. Więcej chyba nie potrzeba do szczęścia :-).

 

No właśnie nie pokazuje ..., żeby to przetestować włączyłem drugi terminal i odpaliłem specjalnie silnik (silnik przy starcie wykonuje około 90 zapytań do bazy, tutaj nic się nie pokazuje, jak to wytłumaczysz ?

Edytowano przez lanceq (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

On pokazuje połączenia a nie zapytania,

 

 

Połączenie zaczyna się na początku skryptu a kończy na końcu, zapytania są wewnątrz skryptu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No a ja chciałem zobaczyć aktualnie wykonywane zapytania a nie połączenia żeby zlikwidować błędy obciążające mysql'a po co mi patrzeć na ilość połączeń ?

Edytowano przez lanceq (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Polecenie processlist pokazuje połączenia i powiązane z nimi zapytania, przykładowo:

 

														  
| 840502 | jakies_test | localhost | cokolwiek_test | Query   | 1	| Sending data | SELECT a.aid, a.timestamp, a.url, a.uid, u.name FROM accesslog a LEFT JOIN users u ON a.uid = u.uid  |  

 

Zauważ, że Twój watch odswieża się co 2 sekundy. Jeśli zapytania trwają krócej i akurat odpowiednio nie trafią w odswieżenie to ich nie zauważysz. Jak chcesz mieć odświeżenie częściej to dodaj -n1 do polecenia.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No i będzie odświeżał co sekunde, ja muszę mieć w czasie rzeczywistym i tak żeby pokazywał kilka na raz bo te zapytania lecą strasznie szybko i jest ich sporo.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To niestety takiego narzędzia pod konsolę nie znajdziesz. Możesz jedynie uruchomić logowanie wszystkich zapytań do pliku. A jeśli te zapytania wykonują sie mniej niż sekundę to raczej wątpie, żeby serwer się z nimi specjalnie męczył.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Doszedłem do wniosku że silnik jest głównie obciążany przez nieustanne spamowanie pojedyńczych i tych samych zapytań które same w sobie wykonują się jedna za drugą, krótko ale jest ich multum, jak coś takiego wykryć ?

Edytowano przez lanceq (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie bardzo rozumiem o co w tym powyższym chodzi. Baza danych jest od tego żeby wykonywa zapytania i jeżeli nie wykonują się długo (brak ich w slow query) to znaczy, ze są ok. Jakie masz objawy? Może to problem z IO wait a nie bazą danych? Ten silnik nie ma jakiegoś trybu debug i pomiaru czasu na poszczególne rzeczy - sql/aplikacja?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To TFS, silnik pod OTS'y wykorzystuje połączenie z mysql'em. Objaw to 100% procka, chce dokładnie wiedzieć jakie zapytanie wywołuje te 100% procesora, problem nie pojawia się od razu po odpaleniu ale gdy np. do gry wbije z 20 graczy, zakładam że ktoś wywołuję jakąś komendę przez OTS typu !online, !frags itd. która wywołuje zapytania w dużej ilości i obciąża tym samym procek. Co do tego wyżej chodziło mi o bardzo dużą ilość wykonywania konkretnego zapytania które wykonuję się szybko ale po prostu jest spamowane.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bawiłem się w TFS z dobre 3 lata temu i generował on logi, więc lepiej zajrzeć w nie niż szukać gdzie indziej przyczyny.

Zawsze można w silniku, jak i pewnie w configu ustawić exhausta na komendy.

 

Poza tym, co jak co ale TFS to kawał dobrej i darmowej roboty, który trzyma największe serwery bez zająknięcia.

Edytowano przez Piotrek Mazurkiewicz (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bawiłem się w TFS z dobre 3 lata temu i generował on logi, więc lepiej zajrzeć w nie niż szukać gdzie indziej przyczyny.

Zawsze można w silniku, jak i pewnie w configu ustawić exhausta na komendy.

 

Poza tym, co jak co ale TFS to kawał dobrej i darmowej roboty, który trzyma największe serwery bez zająknięcia.

 

Nie do końca masz racje, logi z tfs'a nie wykryją spamowania querryiesami, jedynie błedy skryptów, poczynania graczy i broadcast. Dlatego potrzebuje log z zapytań.

Edytowano przez lanceq (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zerknij tutaj, ale z tego co teraz wyszperałem to raczej problem silnika

http://otland.net/f1...-0-3-6-a-69864/

 

A zapytania prawdopodobnie podejrzysz tak:

http://www.howtogeek...eries-in-mysql/

Edytowano przez Piotrek Mazurkiewicz (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×