Strona główna » Blog » Zdalne korzystanie z mysqltuner.pl

Zdalne korzystanie z mysqltuner.pl

Dla kogoś, kto nie jest specjalistą od baz danych ze szczególnych uwzględnieniem baz MySQL oraz MariaDB, ogromną pomocą jest korzystanie ze skryptu mysqltuner.pl autorstwa osoby podpisującej się Major Hadyen. Skrypt ten bada aktualną konfigurację wskazanego serwera MySQL wraz z zebranymi na nim statystykami działania, aby rekomendować poprawki do jego konfiguracji. Przed wprowadzeniem zmian rekomendowane jest zapoznanie się z ich opisem w dokumentacji, aby orientować się co w ogóle jest rekomendowane – a przy okazji można się czegoś nauczyć.

Moje doświadczenia z wykorzystaniem tego skryptu są jak do tej pory wyłącznie pozytywne a efekty rekonfiguracji serwerów bywały znakomite. Po wprowadzeniu zmian na niektórych serwerach sprawność wykonywania zapytań potrafiła wzrosnąć wiele razy, czyli o wieleset procent. Przyspieszenie bywało naprawdę zdumiewające.

Zdalny użytkownik

Ze swojej strony chciałbym dodać tylko kilka praktycznych informacji. Skrypt po uruchomieniu prosi o podanie loginu i hasła użytkownika administracyjnego. Jeżeli uruchamiamy go z poziomu maszyny na której znajduje się baza danych, możemy jeszcze posłużyć się rootem, ale jeżeli mamy wiele serwerów bazodanowych, wówczas wygodniej jest uruchamiać mysqltuner.pl tylko z jednej z nich i odwoływać się do innych serwerów zdalnie. Będziemy do tego potrzebować:

  • Adresy IP wraz z portami maszyn z bazami danych;
  • Login i hasło użytkownika o odpowiednich uprawnieniach;
  • Wiedzę o ilości pamięci fizycznej danej maszyny (w megabajtach);
  • Wiedzę o ilości pamięci swap danej maszyny (w megabajtach).

Wspominane wyżej “odpowiednie uprawnienia” dla zdalnego użytkownika eksperymentalnie zawęziłem do:

  • Select table data (czyli SELECT w bazie MySQL)
  • Show databases (czyli SHOW_DATABASES)
  • Slave replication (czyli REPLICATION_SLAVE)
  • Client replication (czyli REPLICATION_CLIENT)

Uprawnienia związane z replikacją nie są obowiązkowe. Jeżeli wiemy, że nasze bazy nie korzystają z replikacji, możemy te uprawnienia pominąć. Skrypt będzie raportować brak tych uprawnień jako błąd albo prosić o uprawnienie SUPERUSER, ale nie zauważyłem u siebie, aby wpływało to na jego działanie względem spraw niepowiązanych z replikacją.

Dla celów bezpieczeństwa zdalny użytkownik powinien mieć możliwość działania tylko z jednego określonego hosta z którego będziemy nasz skrypt zdalnie uruchamiać.

Linia poleceń

Samo uruchomienie mysqltuner.pl z niezbędnymi informacjami do badania zewnętrznego serwera, np. 192.168.0.2, może wyglądać tak:

./mysqltuner.pl --host 192.168.0.2 --forcemem 16000 --forceswap 8096

Opcja –forcemem informuje o ilości pamięci fizycznej na wskazanej maszynie a –forceswap informuje o ilości pamięci swap. Obie wartości podane są w megabajtach.

Polecam zapoznać się z innymi możliwymi parametrami skryptu – ich opis powinien się wyświetlić po użyciu opcji –help, ale można je też sobie wyczytać w treści kodu na githubie.

Jeżeli skrypt ma być używany zdalnie i jego wyniki zapisywane do zewnętrznego pliku to polecam użyć opcji –nocolor. Bez tej opcji w tekście znajdą się znaki kontrolne odpowiadające za nadawanie kolorów, co odbierze nieco z czytelności.

Jeżeli chcemy, aby skrypt sam sprawdzał, czy jego nowa wersja jest dostępna, należy użyć opcji –checkversion. Opcja ta nie powoduje jednak automatycznej aktualizacji a jedynie wypisuje odpowiednią informację. Aktualizację musimy przeprowadzić sami. Sam skrypt rozwijany jest na githubie, więc można zakładać, że jego aktualizacje mogą się rzeczywiście często zdarzać. Jest to dodatkowy powód, aby trzymać go w jednym miejscu i na jednym serwerze a nie na każdym serwerze osobno, bo łatwiej panować nad pojedynczym plikiem niż nad wieloma (chociaż wtedy musimy pilnować zmian w pamięci fizycznej i pamięci swap na badanych serwerach).

Dodaj komentarz