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