Wpis z mikrobloga

#php #phpbb3 #pytanie

szukałem już wszędzie odpowiedzi, może ktoś tutaj mi pomoże ( ͡° ʖ̯ ͡°)

jestem właścicielem dość dużego forum (kilkanascie tyś. UU/mc) i od paru tygodni mam problem z zawiechami. coś, ktoś, wysyła zapytania do bazy które powodują przeciążenie serwera. mówię tutaj dość laickim pismem, bo sam jestem dość zielony w tych sprawach, od helpdesku otrzymałem następującą odpowiedź:

Witam!

W dalszym ciagu regularnie pojawiaja sie te wpisy w slow-logu:


# Time: 150212 12:31:38
# User@Host: ~~~~[~~~~] @ [~~~~]
# Query_time: 10.331726 Lock_time: 0.000076 Rows_sent: 79 Rows_examined: 777653
SET timestamp=1423740698;
SELECT f.*, ft.mark_time, t.topic_id, t.topic_title, t.icon_id, t.topic_status, t.topic_moved_id FROM (phpbb_forums f) LEFT JOIN phpbb_forums_track ft ON (ft.user_id = 368 AND ft.forum_id = f.forum_id) LEFT JOIN phpbb_topics t ON (f.forum_last_post_id = t.topic_last_post_id) ORDER BY f.left_id;

One naprawde bardzo obciazaja serwer i moim zdaniem to moze byc glowny powod tak wysokiego obciazenia procesora i calej maszyny. Te zapytania powtarzaja sie czasem nawet co kilka sekund (czyli szybciej, niz same trwaja!).


oraz

W ciagu ~10 sekund wykonalo sie 8 takich zapytan - to dobija calkowicie CPU i w efekcie wszystko pozostale dziala wolno. A z pewnoscia nie sa to normalne zapytania do bazy z normalnego skryptu forum -> zadna baza nie wykonywalaby zapytan podczas ktorych mysql "przechodzi" po 800 tys rekordach wyciagajac jedynie 79 z nich :)

pozdr.


Podejrzewałem wyszukiwarkę, ale to samo #!$%@? pokazywało się w logach po całkowitym jej wyłączeniu.

Skąd to się bierze? Jak mogę tego uniknąć?
  • 8
@uosiu: w tym logu akurat chodzi o usera z tym ID, dostałem niemal tożsame logi w którym wyszukiwany był inny user.

zwiększ cache zapytań na bazie SQL. Użyj innodb

czy istnieje jakakolwiek szansa na otrzymanie jakiegoś tutoriala na ten temat?
@wu_tang_LAN:
1) masz już zapytanie, może warto przeszukać kod phpbb w poszukiwaniu tego właśnie zapytania żeby wiedzieć dokładnie która funkcjonalność je wykorzystuje?
2) tak jak pisali wyżej, w jakieś tabeli masz bardzo dużo rekordów, warto sprawdzić co w niej jest i może, jeżeli dane nie są krytyczne dla strony pousuwać cześć? np. jeżeli to jest histria przeczytanych tematów to dla użtkowników którzy się nie logowali długo powywalać wpisy
3) ilość zapytać
@poh: wstyd mi mówić, ale nie wiem co zrobić z tą odpowiedzią od Olega? dodać wytłuszczony fragment kodu z 1 posta do fragmentu z jego cytatu? ale gdzie go znajdę?

niemniej jednak dzięki za link!

@marek04: dzięki wielkie za podpowiedzi :) dzis juz na to nie pora ale od jutra z tym działam
@wu_tang_LAN: tak, dokleic. Podobno to coś związanego z viewforum, przeszukaj pliki po tresci, szukaj po np. "phpbbforumstrack" bo po calym zapytaniu na pewno nie znajdziesz (przez zmienne, prefixy itp)