Currently I have 3 servers running, 2 remote, Main server running MySQL 5.5.24 and backup running MySQL 5.1.63 and 1 local running MySQL 5.5.20 for development. The main server is used for reporting purposes; currently have 144 tables (MyISAM and InnoDB), and about 80gb of data, the larger tables have about 13 million rows each one.
On the remote servers I have very limited access through webmin, because of this I can’t make the changes directly, I need to ask to IT department for them.
I’m having some serious performance issues on the Main server since a MySQL crash we had last month. The server was running a development release which had some disk writing bugs, after the recovery we installed the MySQL 5.5.23 version and that’s when the performance issues began. We recently installed MySQL 5.5.24 (lastest stable version) but we still have the performance issues
Here are the servers configurations, all are dedicated servers:
Main:
Operating system: Gentoo Linux
Kernel and CPU: Linux 2.6.31-gentoo-r6 on x86_64
Processor information: Intel(R) Xeon(TM) CPU 2.66GHz, 8 cores
Real memory (ram): 23.55 GB total
Virtual memory: 3.74 GB total
Local disk space: 463.38 GB total (about 30% free)
Backup:
Operating system: Gentoo Linux
Kernel and CPU: Linux 2.6.31-gentoo-r6 on x86_64
Processor information: Intel(R) Core(TM)2 Duo CPU E6405 @ 2.13GHz, 2 cores
Real memory (ram): 15.68 GB total
Virtual memory: 16.01 GB total
Local disk space: 4.73 TB total (about 80% free)
Development:
Operating system: Ubuntu Linux 9.04
Kernel and CPU: Linux 2.6.32-33-server on x86_64
Processor information: Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz, 2 cores
Real memory (ram): 1.95 GB total
Virtual memory: 5.65 GB total
Local disk space: 141.15 GB total (about 5% free)
All the servers have the same my.cnf configuration, except for the innodb_buffer_pool_size
my.cnf
[mysqld]
back_log = 50
max_connections = 100
max_connect_errors = 10
table_open_cache = 2048
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 8
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 2M
ft_min_word_len = 4
default-storage-engine = MYISAM
thread_stack = 262K
stored_program_cache= 1024
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
binlog_format=mixed
slow_query_log
long_query_time = 2
key_buffer_size = 512M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 8G
innodb_data_file_path = ibdata1:10M:autoextend
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 240
server-id = 1
event_scheduler = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
I’ve tried several large Stored Procedures with lots of columns and data and the backup server is about 10x faster than the main server, and running them on development server its about 5x faster than main.
Since the main server and the backup server are on the same remote location and through a VPN I know there are no connection speed issues.
I can’t post the Stored Procedures code, but I know the issue is on the final SELECT since the creation of all temporary tables are pretty fast, and I can see in the MySQL monitor (using SHOW FULL PROCESSLIST) that the SELECT is taking 95% of the time. Most of the Stored Procedures works with tons of data, with multiples joins.
Any Ideas why the main server could be having so bad performance even it’s the most powerful?
We’ve been looking for reported performance bugs of the latest versions, but what we found didn’t help at all http://bugs.mysql.com/bug.php?id=44585
I’ll really appreciate any help
Would this question better be asked on server fault? It’s my first question
Sorry about my english.
Finally we moved the DB to another server, new version of MySQL