Download: SysadminCharly
Transkrypt
Download: SysadminCharly
Z poradnika administratora SYSADMIN Z poradnika administratora: Mtop KONTROLA ZDROWIA Byłoby świetnie, gdyby każda baza danych MySQL działała perfekcyjnie przez cały czas – niestety, czasem zdarzają się problemy. Plik dziennika nie pomaga zbytnio w stwierdzeniu, z czego wynika nagły zalew zapytań do bazy. Z odsieczą przychodzi Mtop. CHARLY KÜHNAST N iedawno omawialiśmy w tym dziale program ApacheTop. ApacheTop to narzędzie informujące o tym, czym w danej chwili zajmuje się serwer WWW i wskazujące potencjalne wąskie gardła. W tym miesiącu zajmiemy się kolejnym członkiem rodziny Top: programem Mtop, działającym w czasie rzeczywistym narzędziem do monitorowania MySQL [1]. Archiwum tar z programem zajmuje jedynie 48 kilobajtów. Wymaga kilku modułów języka Perl: Curses, DBI, DBD::mysql oraz Net::Domain – najprawdopodobniej jednak większość z nich jest już i tak zainstalowana, a ewentualne braki możesz błyskawicznie uzupełnić, korzystając z CPAN. Po spełnieniu tych wymagań wpisz perl Makefile.PL, make i make install w /usr/local/bin/, aby zakończyć proces instalowania programu mtop. Teraz musisz przyznać mu dostęp do informacji o procesach MySQL, ponieważ – w odróżnieniu od ApacheTop – Mtop nie czyta po prostu plików dziennika, ale wymaga do nich bezpośredniego dostępu. Ja zdecydowałem się na założenie konta użytkownika MySQL o bardzo ograniczonych uprawnieniach i nieposiadającego hasła. Aby zrobić to w MySQL 4.0.2 lub nowszym, wystarczą następujące polecenia SQL: grant super, reload, §§ process on *.* to mysqltop; grant super, reload, §§ process on *.* to mysqltop@localhost; flush privileges; Krytyczne znaczenie ma tylko uprawnienie process. Jeżeli nie chcesz usuwać działających zapytań z poziomu Mtop, możesz pominąć uprawnienie super. chwili nie obsługuje zbyt wielu zapytań, wszystko powinno wyglądać dość przejrzyście, jak na Rysunku 1. Trzeba jednak przyznać, że wspomnianą przejrzystość osiągnię- Rysunek 1: Mtop pozwala administratorom monitorować działanie bazy danych MySQL. Jeżeli tylko liczba zapytań nie jest zbyt duża, wyświetla je nawet w czytelny i przejrzysty sposób. Dozór Starsze wersje MySQL, od 3.22.11 do 4.0.1, wykorzystują uprawnienie process do przyznawania praw do usuwania zapytań. Jeżeli korzystasz z którejś z nich, musisz wpisać trzy poniższe wiersze: grant reload, §§ process on *.* §§ to mysqltop; grant reload, process on *.* to mysqltop@localhost; flush privileges; Zwolennicy ściślejszych restrykcji mogą jeszcze bardziej ograniczyć prawa programu Mtop, usuwając uprawnienie reload. Bez niego Mtop nie będzie w stanie wydawać poleceń flush. Tip Top Teraz możesz już wreszcie uruchomić mtop po raz pierwszy. Jeżeli baza danych działa na innym komputerze, trzeba określić jej adres za pomocą parametru -h host. Jeżeli w danej WWW.LINUX-MAGAZINE.PL to dzięki wykorzystaniu niezbyt łatwych do rozszyfrowania skrótów. Trzy najważniejsze z nich to: ■ RRN: Liczba zapytań żądających dostępu do następnego wiersza tabeli. Duża wartość oznacza, że tabele nie są poindeksowane, lub że zapytania nie korzystają z istniejących indeksów. ■ TLW: Liczba żądań wyłącznego dostępu do tabeli (lock table), których nie udało się zrealizować. Przyczyną może być zbyt duży rozmiar tabeli albo źle sformułowane zapytanie. ■ QPS: Liczba poleceń SQL wydanych od momentu uruchomienia serwera do ostatniego wywołania instrukcji flush. Podobnie jak inne programy z rodziny Top, Mtop obsługuje również skróty klawiszowe. Ich spis znajduje się w pliku pomocy (man). (jk) ■ INFO [1] Mtop: http://mtop.sourceforge.net NUMER 18 LIPIEC 2005 71