[rt-users] Severe performance problems suddenly in RT 3.8.2

Dave Holland dh3 at sanger.ac.uk
Tue Feb 17 13:09:00 EST 2009


On Tue, Feb 17, 2009 at 12:59:17PM -0500, Jesse Vincent wrote:
> And just to be sure, you ran the commands in UPGRADING.mysql?

I believe so (Tim did it).

> > # Query_time: 240  Lock_time: 0  Rows_sent: 4  Rows_examined: 27
> > SELECT DISTINCT main.Id AS id, main.Filename AS filename,
> > main.ContentType AS contenttype, main.Headers AS headers, main.Subject
> > AS subject, main.Parent AS parent, main.ContentEncoding AS
> > contentencoding, main.ContentType AS contenttype, main.TransactionId AS
> > transactionid, main.Created AS created FROM Attachments main JOIN
> > Transactions Transactions_1  ON ( Transactions_1.id = main.TransactionId
> > ) JOIN Tickets Tickets_2 ON ( Tickets_2.id = Transactions_1.ObjectId )
> > WHERE (Tickets_2.EffectiveId = '97814') AND (Transactions_1.ObjectType =
> > 'RT::Ticket')  ORDER BY main.id ASC;
> 
> 
> Can you give me an 'EXPLAIN' on that query?

Sure:

+----+-------------+----------------+------+-----------------------+---------------+---------+-------------------------+------+----------------------------------------------+
| id | select_type | table          | type | possible_keys         | key           | key_len | ref                     | rows | Extra                                        |
+----+-------------+----------------+------+-----------------------+---------------+---------+-------------------------+------+----------------------------------------------+
|  1 | SIMPLE      | Tickets_2      | ref  | PRIMARY,Tickets6      | Tickets6      | 4       | const                   |    1 | Using index; Using temporary; Using filesort | 
|  1 | SIMPLE      | Transactions_1 | ref  | PRIMARY,Transactions1 | Transactions1 | 70      | const,rtdb.Tickets_2.id |    1 | Using where; Using index                     | 
|  1 | SIMPLE      | main           | ref  | Attachments2          | Attachments2  | 4       | rtdb.Transactions_1.id  |    1 |                                              | 
+----+-------------+----------------+------+-----------------------+---------------+---------+-------------------------+------+----------------------------------------------+

> Can you easily optimize your tables? Perhaps first, it's worth running
> mysqltuner.pl (http://mysqltuner.pl) and posting the output.

 >>  MySQLTuner 1.0.0 - Major Hayden <major at mhtx.net>
 >>  Bug reports, feature requests, and downloads at
 >>  http://mysqltuner.com/
 >>  Run with '--help' for additional options and output filtering

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.0.32-Debian_7etch8-log
[OK] Operating on 32-bit architecture with less than 2GB RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster 
[--] Data in MyISAM tables: 15M (Tables: 1)
[--] Data in InnoDB tables: 4G (Tables: 20)
[!!] Total fragmented tables: 1

-------- Performance Metrics -------------------------------------------------
[--] Up for: 1h 13m 11s (106K q [24.317 qps], 456 conn, TX: 228M, RX: 41M)
[--] Reads / Writes: 97% / 3%
[--] Total buffers: 1.3G global + 2.6M per thread (100 max threads)
[OK] Maximum possible memory usage: 1.6G (80% of installed RAM)
[OK] Slow queries: 0% (72/106K)
[OK] Highest usage of available connections: 56% (56/100)
[OK] Key buffer size / total MyISAM indexes: 256.0M/209.0M
[!!] Key buffer hit rate: 87.9% (13K cached / 1K reads)
[OK] Query cache efficiency: 53.8% (53K cached / 98K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 2K sorts)
[!!] Temporary tables created on disk: 26% (1K on disk / 7K total)
[OK] Thread cache hit rate: 87% (57 created / 456 connections)
[OK] Table cache hit rate: 42% (89 open / 207 opened)
[OK] Open file limit used: 4% (43/1K)
[OK] Table locks acquired immediately: 99% (95K immediate / 95K locks)
[!!] InnoDB data size / buffer pool: 5.0G/1.0G

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    MySQL started within last 24 hours - recommendations may be inaccurate
    When making adjustments, make tmp_table_size/max_heap_table_size equal
    Reduce your SELECT DISTINCT queries without LIMIT clauses
Variables to adjust:
    tmp_table_size (> 64M)
    max_heap_table_size (> 16M)
    innodb_buffer_pool_size (>= 4G)

It's a 2GB machine so we can't up the innodb_buffer_pool_size (much)
more. I think the tmp_table_size/max_heap_table_size is the most recent
tweak we've tried.

thanks again,
Dave
-- 
** Dave Holland ** Systems Support -- Infrastructure Management **
** 01223 496923 ** The Sanger Institute, Hinxton, Cambridge, UK **
"Flattery is flattery, but chocolate gets results."


-- 
 The Wellcome Trust Sanger Institute is operated by Genome Research 
 Limited, a charity registered in England with number 1021457 and a 
 company registered in England with number 2742969, whose registered 
 office is 215 Euston Road, London, NW1 2BE. 



More information about the rt-users mailing list