Skip to content

Korzystanie ze skryptu analizatora dostrajania wydajności MySQL

7 de sierpień de 2021

Kiedy pracujesz nad zwiększeniem szybkości swojej witryny, bardzo ważnym elementem jest upewnienie się, że uzyskasz ostatnią kroplę wydajności z serwera bazy danych. Niestety, dla większości z nas, którzy zwykle nie są administratorami baz danych, może to być trudna propozycja.

Istnieje wiele skryptów dostrajających wydajność, które przeanalizują ustawienia serwera i aktualny stan oraz podadzą informacje o zalecanych zmianach, które należy wprowadzić. Niekoniecznie powinieneś podążać za wszystkimi sugestiami, ale i tak warto się przyjrzeć.

Skrypt, którego używam, zawiera zalecenia dotyczące następujących kwestii:

  • Dziennik powolnych zapytań
  • Maksymalna liczba połączeń
  • Wątki robocze
  • Bufor klucza
  • Pamięć podręczna zapytań
  • Sortuj bufor
  • Łączy
  • Tabele temp.
  • Pamięć podręczna tabeli (otwarta i definicja)
  • Blokowanie stołu
  • Skany tabeli (read_buffer)
  • Stan Innodb
  • Po pobraniu skryptu musisz ustawić go jako wykonywalny za pomocą następującego polecenia:

    chmod u+x tuning-primer.sh

    Jeśli uruchomisz ten skrypt jako zwykły użytkownik, zostaniesz poproszony o podanie hasła, więc musisz odpowiednio ustawić dostęp. Jeśli uruchomisz go jako root, odbierze hasło mysql z Pleska, jeśli masz to zainstalowane.


    Wyciąłem wiele wyników, które zawierały znacznie więcej zaleceń, ale były po prostu za długie, aby zmieścić się na stronie.

    ./tuning-primer.sh

    — MYSQL PERFORMANCE TUNING PRIMER —
    – Autor: Matthew Montgomery –

    MySQL w wersji 4.1.20 i686

    Czas pracy = 5 dni 10 godz. 46 min 5 s
    Śr. qps = 4
    Wszystkie pytania = 2020809
    Połączone wątki = 1

    Serwer działa od ponad 48 godzin.
    Przestrzeganie tych zaleceń powinno być bezpieczne

    ———– obcięty ————–

    Pamięć podręczna zapytań
    Pamięć podręczna zapytań jest włączona
    Bieżący rozmiar_pamięci_podręcznej_zapytania = 8 mln
    Bieżące zapytanie_cache_used = 7 mln
    Bieżący query_cach_limit = 1 M
    Bieżący współczynnik wypełnienia pamięci podręcznej zapytań = 89,38%
    Jednak 254246 zapytań zostało usuniętych z pamięci podręcznej zapytań z powodu braku pamięci
    Być może powinieneś podnieść query_cache_size
    MySQL nie buforuje wyników zapytań, które są większe niż query_cache_limit w rozmiarze

    ———– obcięty ————–

    Wygląda na to, że muszę zwiększyć pamięć podręczną zapytań… Ustawiłem ją tylko na 8 MB, ale zbyt często czyści pamięć podręczną.

    ———– obcięty ————–

    TABELE TEMPERATUROWE
    Obecny max_heap_table_size = 16 M
    Bieżący rozmiar_tabeli_tmp = 32 mln
    Z 35170 tabel tymczasowych 74% zostało utworzonych na dysku
    Efektywny tmp_table_size w pamięci jest ograniczony do max_heap_table_size.
    Być może powinieneś zwiększyć swój tmp_table_size i/lub max_heap_table_size
    w celu zmniejszenia liczby tabel tymczasowych opartych na dyskach
    Notatka! Kolumny BLOB i TEXT nie są dozwolone w tabelach pamięci.
    Jeśli korzystasz z tych kolumn, podniesienie tych wartości może nie wpłynąć na Twoje
    stosunek tabel temp. na dysku.

    ———– obcięty ————–

    Tego typu informacje są po prostu nieocenione, gdy próbujesz dostroić wydajność swojej witryny.

    Pobierz skrypt MySQL Performance Tuning Primer

    Czy ten post był pomocny?