The Sysadmin’s Daily Grind: Mtop

HEALTH CHECK

Author(s):

It would be great if every MySQL database enjoyed perfect health 24 by 7, but unfortunately, trouble sometimes strikes. A logfile isn’t much help if you are investigating why a database is flooded with requests. Mtop to the rescue.

We looked at ApacheTop in this column not too long ago. ApacheTop is a tool that tells you what your web server is doing right now, pointing out potential bottlenecks. In this month’s column, we will be looking at another member of the top family: Mtop, the realtime monitor for MySQL [1]. The Mtop tarball weighs in at a mere 48 kbytes. It requires a few Perl modules: Curses, DBI, DBD::mysql, and Net::Domain – but you will probably have most of these installed anyway, and CPAN will fill any gaps in next to no time. After satisfying the dependencies, enter perl Makefile.PL, make, and make install in /usr/local/bin/ to complete the Mtop build. The next step is to allow Mtop access to your MySQL process information, as – in contrast to Apachetop – Mtop does not simply parse the server logfiles, but requires direct access. I decided to set up a user with extremely restricted privileges in MySQL and did not assign a password. The following SQL prompt should do the trick for version 4.0.2 or newer of MySQL: grant super, reload, U process on *.* to mysqltop; grant super, reload, U process on *.* to mysqltop@localhost; flush privileges;