Skocz do zawartości
Zaloguj się, aby obserwować  
SomeGuy

MySQL Tuner - Optymalizacja Baz Danych

Polecane posty

Wiadomo, najlepiej zoptymalizować zapytania :)

 

MysqlTuner:

https://github.com/major/MySQLTuner-perl

 

Ktoś używa bądź używał? Kiedy najlepiej przeprowadzić test i zastosować się do wskazówek? Czy w ogóle warto słuchać tego narzędzia?

W jaki sposób przeprowadzić test, aby był skuteczny?

 

 

Kilka razy zdarzyło mi się użyć tego tunera, ale niestety nie podłapał nic co mógłbym zmienić na lepsze, może było dobrze ? :)

 

Edytowano przez SomeGuy

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie zajmuje sie administrowaniem zawodowo więc zapewne nie wykorzystałem pełnych możliwości tego softu ale korzystałem kilka razy. Oczywiście najlepiej odpalic je po conajmniej 24 godzinnym działaniu serwera (i aby w tym czasie mysql był realnie obciążony przez aplikacje) - pokazuje przydatne informacje ile ramu nam zeżre przy maksymalnym obciążeniu, czy slow logi itp są odpowiednio ustawione, i podstawowa konfiguracjia w zabezpieczeniu ... zawsze przypomni o indexach i takie tam pierdoły...ale czy przy optymalizacji dot. szybkości działania jest pomocne ?
Nigdy nie obserwowałem dłużej wyników mysqltuner ale mi często kazał podwyższać niektóre wartości do niezrozumiale wysokich (zdecydowanie za wysokich - czasem większych niż dostępny RAM itp) - poprostu wariował. Często też sugerował wyłaczenie mi query_cache, przez co aplikacje działały kilka razy wolniej zamiast szybciej. Dlatego od dostosowaniu konkretnych wartości typu key_buffer_size, myisam_pool_buffer_size i innych przez mysqltuner wstrzymał bym się - a dostososwywał je na "oko" - i widząc jak działa aplikacja po zmianie.


PS. możesz jeszcze spróbowac ten skrypt: https://launchpad.net/mysql-tuning-primer - ale akurat z tego nie korzystałem :)

Edytowano przez Rafiki

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
30 minut temu, behemoth napisał:

Albo nie poczekałeś 24h od restartu serwera SQL ;)

 

Poczekałem, poczekałem :)

 

Dzięki @Rafiki za toola, nie korzystałem z niego nigdy, chętnie gdzieś potestuje. 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Działa dobrze, ale pamiętaj że to raczej sugestie / wskazówki. Nie wrzucaj na 100% tego co on zasugeruje. Może się okazać że co chwila będzie kazał ci zwiększać parametry dopóki serwer mysql się nie uruchomi bo zabraknie mu ramu :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
4 minuty temu, Poziomecki napisał:

Działa dobrze, ale pamiętaj że to raczej sugestie / wskazówki. Nie wrzucaj na 100% tego co on zasugeruje. Może się okazać że co chwila będzie kazał ci zwiększać parametry dopóki serwer mysql się nie uruchomi bo zabraknie mu ramu :D

 

Jasna sprawa, jeśli coś wyda mi się podejrzane to się tym nie sugeruje i uparcie obstawiam przy swoim. 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Według mnie - bardzo fajna sprawa. Ale podobnie jak reszta - sugeruję wartości, które są wypluwane w raporcie - do dokumentacji i zastosować ze zdrowym rozsądkiem. Zastosowanie na ślepo - pewnie by poprawiło stan MySQL, ale mogłoby spowodować zjedzenie całych zasobów przez bazę i po co komu dostrojony MySQL skoro ramu brakuje na przetworzenie stron ;)

No i dodatkowo - trzeba mieć na uwadze co się ma w tej bazie. Jak baza jest dedykowana pod jeden projekt, faktycznie można zdziałać dużo, na typowym serwerze hostingowym gdzie jest wszystko sprawdza się to dużo mniej.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wiele razy używałem mysqltunera i wiele razy mi podpowiedział conieco, chociaż wolę opierać się na dokumentacji mysqla w kwestiach optymalizacji

 

swoją drogą,  polecam na szybko

$ wget mysqltuner.pl

;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Warto też się upewnić, że korzysta się z aktualnej wersji.

 

Twórcy mysql tunera cały czas go poprawiają, aktualne wersje są o wiele mniej podatne na właśnie takie błędy jak zwiększanie parametrów w nieskończoność, poza nowymi funkcjami które podpowiadają coraz to nowsze parametry dodane w aktualnych wersjach MySQL/MariaDB.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przychylam się do tego, co napisał Tomek - stosować się do jego rekomendacji z głową i po lekturze dokumentacji. 

 

Na pewno w przypadku problemów z wydajnością mysqla zajrzeć do logów lub włączyć logowanie.

 

A jak natrafiasz na zwolnienie MySQLa to najlepszych przyjacielem jest zawsze SHOW PROCESSLIST; i SHOW FULL PROCESSLIST; który pokaże co się aktualnie dzieje.

Ciekawą nakładką na to jest http://mtop.sourceforge.net

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Taka ciekawostka na VPS z VestaCP + MariaDB pokosiło mnie żeby zainstalować mysqltuner jak program:

sudo apt-get install mysqltuner

I całość MySQL zależności mi padła... na moje szczęście było to VPS testowy, wiec pozostała mi reinstalacja, bo nie podołałem z reanimacją po tej instalacji :S

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja zawsze wychodzę z założenia, że jak jest coś czego instalować nie muszę a wersja portable jest wspierana, to nie instaluję tylko odpalam, a potem usuwam. 

  • Lubię 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 13.09.2017 o 12:44, SomeGuy napisał:

Ja zawsze wychodzę z założenia, że jak jest coś czego instalować nie muszę a wersja portable jest wspierana, to nie instaluję tylko odpalam, a potem usuwam. 

 

Tyle, że akurat to narzędzie to nie jest do odpalenia na raz i zapomnienia, a aktualna wersja w repozytorium apt zawsze jest bardziej wygodna niż manualna aktualizacja przed każdym użyciem.

 

Trzeba znaleźć balans między jednym a drugim. Ja z kolei wychodzę z założenia, że jak jest coś czego używam w repo, to korzystam z repo.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dobrym startem będzie także skorzystanie z https://tools.percona.com/wizard - oczywiście tak jak mysqltuner nie jest to narzędzie, które idealnie dopasuje całą konfigurację jednak tworzy konfig dobry na start.

  • Lubię 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dołącz do rozmowy

Możesz pisać i zarejestrować się później. Jeśli masz konto,Zaloguj się teraz, aby publikować na swoim koncie.

Gość
Odpowiedz...

×   Wklejony jako tekst z formatowaniem.   Wklej jako zwykły tekst

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

Zaloguj się, aby obserwować  

  • Podobna zawartość

    • Przez Artur Pajkert Hekko.pl
      Wydajność MySQL często jest przedmiotem wielu zapytań. Jej pomiar nie jest prosty, zwłaszcza dla tych, którzy są zwykłymi użytkownikami lub początkującymi programistami, a nie administratorami z dużym doświadczeniem. Takie osoby często nie mają możliwości uruchomienia niczego w linii komend, nie mają także wpływu na ustawienia konfiguracyjne silnika MySQL na serwerze. Mimo to zagadnienie wydajności może być dla nich interesujące.
       
      Z myślą o takich właśnie userach proponuję skrypt Simple DB Speed Test. To proste narzędzie w PHP, jeden plik w zasadzie, który należy umieścić na swoim hostingu i wywołać w przeglądarce url skryptu. Następnie podaje się dane do bazy, a skrypt wykonuję serię popularnych zapytań w pętlach. Narzędzie pozwala przełączać się między mechanizmami składowania InnoDb i MyISAM, co pozwala oceniać wydajność różnych typów tabel.
       
      Co więcej - od wersji 1.2 istnieje obsługa 3 trybów:
      Jedno zapytanie = jedno połączenie z bazą (czyli: połączenie, zapytanie, rozłączenie).  Wszystkie zapytania = jedno połączenie z bazą (czyli: połączenie, seria zapytań, rozłączenie).  Transakcje (czyli: połączenie, transakcja, seria zapytań, zakończenie transkacji, rozłączenie).  
      Początkujący developerzy są zatem w stanie przewidzieć, jakie skutki wydajnościowe może nieść dla nich różna struktura bazy i kształtowanie zapytań.
      Narzędzie pozwala także na porównanie różnych środowisk hostingowych pod kątem wydajnościowym.
       
      Jeśli zatem myślisz dopiero o wyborze hostingu, a wydajność MySQL jest dla Ciebie wyjątkowo istotna: możesz założyć sobie konta testowe i na każdym
      uruchomić ten test, aby porównać środowiska między sobą.
       
      Z pewnością nie jest to metoda idealna, ponieważ efektywność może się wahać zależnie od chwilowego obciążenia - zwłaszcza w środowiskach współdzielonych - ale można taki test wykonać kilkukrotnie o różnych porach i wyciągnąć średnią. Metoda ma też kilka innych wad, m.in. powiązanie z PHP - więc na wydajność wpłynie także wydajność samego środowiska PHP, choć tak samo dzieje się przecież później w realnych aplikacjach. Warto jednak mieć na uwadze, że nie jest to idealnie "wyseparowana" wydajność samego MySQL'a. Z pewnością nie zastąpi bardziej zaawansowanych narzędzie dla administratorów, ale może pozwolić na wstępną ocenę z punktu widzenia użytkownika lub programisty.
       
      Jeśli wydaje Ci się to interesujące - zapraszam do filmu.
      Narzędzie jest dostępne całkowicie bezpłatnie.
       
       
       
       
       

       
    • Przez magician
      Migrowałem na nowego VPS, DirectAdmin od zera, domyślnie odpalił MariaDB. Pomyślałem - czemu nie? ;-)
      Wszystko działa ok poza jedną sprawą - nie mogę połączyć się do mysql z zewnątrz POMIMO wrzucenia odpowiednich uprawnień do tabeli ('%').
       
      netstat -anp tcp netstat -anp | grep :3306 tcp6 0 0 :::3306 :::* LISTEN 29215/mysqld wydaje mi się, że tak jest dobrze.
       
      skip_networking jest na OFF.
       
      3306 na firewallu otworzony.

      Jak się próbuję łączyć z zewnątrz to dostaję:
      Host 'xx-xx-xx-xxx-xx.dynamic.chello.pl' is not allowed to connect to this MariaDB server.
       
      Jakieś sugestie?
      Przy okazji - w praktyce MariaDB lepsza od MySQL?
       
       
       
       
    • Przez Artur Pajkert Hekko.pl
      4 częste problemy z XAMPP rozwiązane, czyli jak sprawnie migrować się na hosting produkcyjny.   Ten wpis i  video są dla tych, którzy zaczynają używać lokalnych środowisk typu XAMPP do realizacji pierwszych projektów. Początkujący developerzy chętnie sięgają po rozwiązania typu XAMPP/WAMP, umożliwiające częściowe odtworzenie programowego środowiska na lokalnym komputerze z systemem Windows. Zdarza się jednak, że projekt developowany w takim lokalnym środowisku po prostu nie chce działać prawidłowo po przeniesieniu na hosting produkcyjny. W tym materiale identyfikuję 4 sytuacje, które mogą to powodować i podpowiadam,  na co zwrócić uwagę, aby projekt w PHP / MySql po przeniesieniu na produkcję działał w pełni prawidłowo. Już na wstępie ogromne dzięki dla wszystkich dyskutantów z hekkowego FB, gdzie sporo osób włączyło się w wątek dzieląc swoimi przemyśleniami o XAMPP - bez Was ten materiał by nie powstał.   Video omawia zagadnienia: 1. Wielkość znaków 2. Wersje PHP 3. Połączenie z baząMySql 4. Kierunek ukośników.   Jeśli znajdujesz w materiale coś interesującego z puntu widzenia początkującego developera/webmastera - podziel się tym w komentarzu. A może miałeś inny problem z migracją z XAMPP, który nie został tu poruszony? Zostaw komentarz, postaram się w kolejnym cyklu wrócić do poruszonych przez Ciebie zagadnień.  
    • Przez smarthost
      Witam,
       
      Reklamujemy forum, ale niektóre rzeczy są z czapy: 
      title na stronie głównej jest: "RootNode - forum dla adminów, webdeveloperów i zwykłych śmiertelników"
       
      dla przykładu: WebHostingTalk.pl - wszystko o webhostingu"
       
      Może dobrze byłoby zmienić Title na np. "RootNode.pl - forum o webhostingu" albo "RootNode.pl - forum o webhostingu dla administratorów i użytkowników"
       
      Dobrze byłoby dodać poprawne opisy tagów OGG, bo linki na facebooku nie mają fajnych opisów, a logo jest malutkie.
       
      Wojtek
    • Przez gravisrs
      Chciałbym poruszyć temat optymalizacji hostingu z perspektywy developera aplikacji internetowych. Drobnych szczegółów, które są coraz częściej zaniedbywane a mają ogromny wpływ na prędkość hostowanych aplikacji opartych o nowoczesne CMS na PHP'ie,

      Rzecz pierwsza.
      Otóż zauważyłem, że coraz częściej trafiam na hostingi, gdzie baza danych jest na bardzo "odległej" maszynie niż sam serwer http. Złożona witryna oparta na Drupalu, WordPressie czy Joomli generuje 100+ zapytań SQL'owych przy każdorazowym wyświetleniu strony, często bardzo prostych i w większości dobrze zoptymalizowanych po stronie kluczy na tabelach itp. Odległej mam tu na myśli opóźnienie na pojedynczym zapytaniu SQL od 1ms, dochodzących nawet do 10-20ms które pochodzi najczęściej z zastosowanej topologii sieci/VPS/Firewalli. Przy jednym zapytaniu SQL'owym nie ma to znaczenia, ale w skryptach, które blokują się na każdą z setek+ odpowiedzi z bazy - te opóźnienie wynikłe z trasowania rośnie do tysięcy milisekund. Jest to bardzo ważny aspekt optymalizacji hostingów na styku aplikacja <-> baza danych.

      Rzecz druga.
      Głęboka konfiguracja. Zdarzają się hostingi, które do każdych żądań HTTP dodają nagłówki X-Frame-Options: SAMEORIGIN - rozumiem kwestie bezpieczeństwa anty XSS/XSRF, ale chciałbym mieć możliwość ich wyłączenia. Wciąż w sieci są systemy np. rezerwacji hoteli osadzane w ramkach. Zdarzają się hostingi, gdzie próżno szukać podstawowych ustawień PHP jak limity zasobów/czasów wykonywań. Zdarzają się hostingi, gdzie wciąż nie są interpretowane .htacces.

      Jeżeli planujecie (roz)budowę hostingu, pamiętajcie proszę o tych drobnych szczegółach, za które klienci używający popularnych CMS będą bardzo wdzięczni.
  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×
×
  • Utwórz nowe...

Ważne informacje

Korzystając z forum, wyrażasz zgodę na: Warunki korzystania z serwisu, Regulamin, Polityka prywatności.