Top Banner
MySQL server tuning, not an optional extra © 2010-2011 Open Query MySQL Server Tuning: not an optional extra Arjen Lentz (w/ Peter Lieverdink) [email protected] Drupal DownUnder 2011 Brisbane
13

MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

Nov 06, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

MySQL Server Tuning:

not an optional extra

Arjen Lentz (w/ Peter Lieverdink)[email protected]

Drupal DownUnder 2011

Brisbane

Page 2: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

Eek! Interactivity

What do these words mean to you?

2

Tuning

Scaling

Resilience

Page 3: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

InnoDB storage engine

• default_storage_engine = InnoDB– innodb_buffer_pool_size = 512M (default: 16M)– innodb_file_per_table = 1 (default: 0)– innodb_flush_method = O_DIRECT– innodb_io_capacity = 400– innodb_log_file_size = 64M (default: 5M)

• see refman for detailed info, you can’t just change this!

• mysql_convert_table_format --type=InnoDB --user=root --password=’secret’ --force dbname

– note: mysql system database must remain MyISAM

3

Page 4: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

General baseline settings

• MyISAM– myisam_recover_options = QUICK,BACKUP– table_cache = 400 (default: 64)– key_buffer_size = 16M (or >128M if you use MyISAM)– read_buffer_size = 2M (default: 256K)– read_rnd_buffer_size = 1M (default: 128K)

• GROUP BY / ORDER BY operations– sort_buffer_size = 2M

• Temporary tables– tmp_table_size = 32M– max_heap_table_size = 32M

4

Page 5: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

Connections & Caching

• Connections– max_connections = 200 (default: 100)– thread_cache_size = 200– in php.ini mysql.allow_persistent_connections=Off

• MySQL query cache– query_cache_size = 64M (default: 16M)– query_cache_size_limit = 128K (default: 1M or higher)– Use memcached!

5

Page 6: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

Logging

• Error log– log_warnings = 2

• Binary log– log_bin = hostname-bin– expire_logs_days = 21

• Slow query log– log_slow = hostname-slow.log– long_query_time = 1– log_queries_not_using_indexes

6

Page 7: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query7

Page 8: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

Resilience - Prevention!

• Better than a cure– Is there a cure? How much down time can you afford?– Or are you just taking on a calculated commercial risk?

• Insurance can’t get your data back– Most support works like insurance though!– SLA? Suing someone won’t save your business

• Significant Side Effects– Personnel Choice– Business Infrastructure– Money Savings– Happyness!

8

Page 9: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

Backups & Replication

• You need a backup strategy– both logical (mysqldump) and physical (filesystem) backups

• they serve different purposes– Replication is not a backup strategy– SAN or RAID is not a backup strategy

• Multi-master for resilience & maintenance– Dual masters with MMM, automatic failover

• Works with Drupal 6

• Replication slaves for read-scalability– Drupal 7 supports

9

Page 10: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

MySQL Replication Architecture

10

Page 11: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

MySQL Replication Topologies

11

Page 12: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

Monitoring

• We use Zabbix for monitoring– see zabbix.com– optional, but inclusive with any subscription we do

• Tribily offers hosted Zabbix monitoring for small setups– see tribily.com– startup by Open Query engineer Walter Heck

12

Page 13: MySQL Server Tuning: not an optional extra fileMySQL Multi-Master Replication Failover Created Date: 1/21/2011 4:42:24 AM ...

MySQL server tuning, not an optional extra © 2010-2011 Open Query

• We prefer the MariaDB branch by Monty: mariadb.com– check out cafuego’s friendlist_graph module

(uses OQGRAPH engine, included from MariaDB 5.2)

• Open Query specialises in remote service subscriptions– reviews, MMM setups, backups, monitoring, tuning, sysadmin– ask Arjen or Peter here at Drupal DownUnder!

Thank you!Arjen [email protected]

Last questions?