Archive for the ‘mysqlreport’ Category

mysqlreport v3.5 released

Wednesday, April 16th, 2008

mysqlreport v3.5 has been released which has the following fixes, changes, updates:

  • Fixed bug: incorrect checking of MySQL version caused mysqlreport to ignore InnoDB status values in some cases. Simplified version from 3 integers (major, minor, patch) to 1 (50024 = 5.0.24, 60001 = 6.0.1, etc.) for easier, more accurate version checking all around.
  • Fixed potential bug: read_relative_infiles might have incorrectly divided infiles with multiple status value sets.
  • Fixed bug: if wait_timeout was greater than –relative, mysqlreport would lose its connection while sleeping. Now the connection is closed and reopened for each live relative report collection.
  • Infiles can now be given SHOW VARIABLES output (in addition to the old method of inserting values manually like: key_buffer_size=128M)
  • Slow query time is beautified for microsecond, millisecond, and second resolution (format_u_time):
    0.000000 - 0.000999 = 0 - 999 µ
    0.001000 - 0.999999 = 1 ms - 999.999 ms
    1.000000 - n.nnnnnn = 1 s - n.nnnnn s
  • Added a lot more debugging output.

mysqlreport v3.4a released, bug fix again

Wednesday, January 23rd, 2008

mysqlreport v3.4a is ready which, like the recently released v3.4, fixes a bug in the relative reports. This time, it was the InnoDB reports which were not correct when made relative. Changes in v3.4a are:

  • Fixed bug: InnoDB report values were wrong in relative reports because 13 InnoDB status values needed to be excluded from being made relative. (thanks Debbie)
  • Changed InnoDB Buffer Pool Read ratio to Read hit %

The Guide to Understanding mysqlreport has been accordingly updated, too.

mysqlreport v3.4 released, bug fix

Sunday, January 20th, 2008

mysqlreport v3.4 is ready which primarily fixes a bug in v3.3 concerning infiles for relative reports.

Changes in v3.4 are:

  • Fixed bug: –relative infiles wouldn’t work unless the SHOW STATUS values were prefixed with a line matching: /Variable_name[\s|]+Value/. Now mysqlreport looks for Aborted_clients which should always be present. (thanks Debbie)
  • Fixed formatting problem: Created Temp Table Size was too small for >99M
  • Removed redundant %Total: column label from Slow line
  • Added more debug info

mysqlreport v3.3 released

Wednesday, January 9th, 2008

mysqlreport v3.3 is ready. Changes:

  • –all is now the default option and all the sub-report options like –dms, –sas, etc. have been removed. All reports that can be made are made automatically.
  • Slow line now displays long_query_time and log_slow_queries
  • Created Temp Table line now displays tmp_table_size
  • The mysqlreport tgz and zip now extract into their own directory
  • The mysqlreport Documentation and The Guide To Understanding mysqlreport have been updated to reflect these changes.

Guide To Understanding mysqlreport updated

Tuesday, June 26th, 2007

The Guide To Understanding mysqlreport has been updated. As many people have noticed, since mysqlreport v3.2, Key Write and Read ratio went away, replaced by Write and Read hit percentage. I figured that “99.87%” was more intuitive than “0.0013″.

mysqlreport v3.2 released

Saturday, May 26th, 2007

mysqlreport v3.2 has been released. Mark Leith’s post, Aggregating SHOW STATUS Output, reminded me that a user had asked me a few months ago to do this for mysqlreport. I forgot until Mark’s post.

I have finished implementing this feature with mysqlreport. The new version has three new command line options: –relative (-r), –report-count (-c), and –detach. All of these are explained in the doc. This feature required substantial alterations to the script, so please tell me if anything doesn’t work.

mysqlreport v3.1 released

Thursday, April 26th, 2007

Yesterday I released mysqlreport v3.1. No large changes:

  • Added support for table_open_cache system var (MySQL 5.1.3+).
  • Removed default assignments for $mycnf{’host’}, $mycnf{’port’}, and $mycnf{’socket’}.
  • Connecting to MySQL now tries socket if one is given and actually a socket, else TCP/IP host if one is given, else generic “host=localhost” which relies on the MySQL client lib to do something useful.
  • Updated help for clarity.
  • Fixed bug: spelled “fsync” wrong.

I also updated The Guide To Understanding mysqlreport to include InnoDB reports and the mysqlreport documentation.

Updated: Non-technical Guide to Isolating Slow MySQL Queries

Wednesday, April 11th, 2007

It’s strange what articles on one’s site become “popular.” I wrote Non-technical Guide to Isolating Slow MySQL Queries some time ago when I was an internal system admin at a data center. I wasn’t “customer-facing” but I still got requests from customers who wanted me to look at their MySQL server. Since that wasn’t my primary responsibility, I had to enlist their help to save me time. Hence, I wrote this article to help not-technically-inclined customers through the first few steps.

My webstats have shown this page to be hit more often than I would have expected. Consequently, I felt that I should update it, so I did.

Humility: Four days later, mysqlreport v3.0 fixed

Tuesday, December 12th, 2006

mysqlreport v3.0a has been released which fixes a bug on line 93:

chomperc($mycnf{’pass’} = <STDIN>);

should be just

chomp($mycnf{’pass’} = <STDIN>);

Thanks to jeroen for pointing this out to me. This bug caused mysqlreport to die when using –pass to prompt for a password:

Undefined subroutine &main::chomperc called at mysqlreport line 93

In other news: thanks also to Aurimas for some technical clarifications in the mysqlreport Guide about temp tables.

mysqlreport v3.0 - Finally, InnoDB reports

Friday, December 8th, 2006

mysqlreport v3.0 has been released (v2.8 & v2.9 were skipped) which finally has InnoDB reports for MySQL servers v5.0.2 and up. The documentation has been updated accordingly. The new options that invoke the InnoDB reports are –innodb (or -id), –innodb-only (or -ido), and –dpr (for the extra Data, Pages, Rows report).

Since this is the first release with InnoDB reports, feedback on the InnoDB reports is appreciated. Eventually, I’ll update the mysqlreport guide to explain the InnoDB reports. For now, I think the InnoDB reports are self-evident to those who know a little about how the InnoDB storage engine works.