SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Performance Tuning & Scale-Out
mit MySQL

     Erfa-Gruppe Internet Briefing
             2. März 2010

            Oli Sennhauser
         Senior MySQL Consultant, FromDual

           oli.sennhauser@fromdual.com




                  www.fromdual.com           1
Inhalt
●   Allgemeines zu Performance Tuning
●   MySQL Performance Tuning
●   Scale-Out Architekturen
●   Und wie weiter?
●   Fragen & Antworten




                      www.fromdual.com   2
Szenarien
●   3 Entwicklungsszenarien:




                    www.fromdual.com   3
Die FromDual Performance-Wippe
Ursachen für schlechte
Performance?




                  www.fromdual.com   4
Wo ist der Flaschenhals?
●   Wir haben 4 Möglichkeiten:
    ●   CPU (Taktrate, Single-Threading, SQL-Queries)
    ●   Memory (RAM, 32/64-bit OS)
    ●   Disk (RAID, SAN, I/O Cache)
    ●   Network (selten und wenn, dann Konfiguration)

        Virtualisierung?


                         www.fromdual.com               5
Wie finde ich den Flaschenhals?
●   shell> free
●   shell> vmstat 1
●   shell> iostat -xk 1
●   shell> ifconfig
●   Nagios, Cacti, MySQL Enterprise Monitor, etc.
●   Windows: Performance Monitor

    Siehe man-Pages.

                          www.fromdual.com          6
Wie messe ich MySQL?
●   mysql> SHOW PROCESSLIST;
●   mysql> SHOW GLOBAL STATUS;
●   mysql> SHOW ENGINE INNODB STATUS;

●   MySQL Enterprise Montior [1]
●   MyTop [2], InnoTop [3]
●   MySQL Activity Report [4]

    oder: MySQL Monitoring Solutions [5]
                       www.fromdual.com    7
Die wichtigsten MySQL
Datenbank Parameter [6]
●   key_buffer_size (MyISAM: 25 – 33% RAM)
●   innodb_buffer_pool_size (InnoDB: 80% RAM)
●   innodb_log_file_size (InnoDB: 32 – 256 Mbyte)
●   innodb_flush_log_at_trx_commit (InnoDB: 2)
●   sync_binlog (InnoDB: 0 oder >> 1)
●   query_cache_size (MySQL: 16 – 128 Mbyte)

●   Database Health Check for MySQL [7]



                         www.fromdual.com           8
SQL Query Tuning
●   Slow Query Log (slow_query_log,
    slow_query_log_file, long_query_time)
●   log_queries_not_using_indexes (deprecated!)
●   mysqldumpslow -s t slow.log
      → Profile
●   EXPLAIN SELECT ... FROM ...
      → Execution Plan der Abfrage (nur SELECT)


                         www.fromdual.com         9
Scale-Up vs. Scale-Out
                                       Scale-Up




●   Kosten
●   MySQL Design
                                         Scale-Out
●   Physikalische Flaschenhälse
●   „Relaxation of Constraints“
                                  www.fromdual.com   10
Was für Komponenten nehme ich
idealerweise?
●
    LAMP3 evtl. Java?
●   „Mainstream“ → Linux (Solaris, Windows)
●   64-bit OS und Hardware (Intel, AMD, KEIN
    Sparc!) und viel RAM!
●   Dediziertes I/O System (KEIN SAN, KEIN
    RAID-5!), schnelle Disks, Write Cache.
●   >= 1 Gbit Netzwerk
●   KEINE Virtualisierung!
                     www.fromdual.com          11
Der MySQL Scale-Out Ansatz

             Application



                  DB




            www.fromdual.com   12
Der MySQL Scale-Out Ansatz

                 Application
           ro
                          rtw

                    Master



                           Slave 1




                www.fromdual.com     13
Der MySQL Scale-Out Ansatz

                 Application
           ro
                          rtw
                                     Slave Reporting
                    Master



                           Slave 3




                www.fromdual.com                       14
Der MySQL Scale-Out Ansatz

                        Application
                  ro
                                 rtw
                                            Slave Reporting
                            Master



     Slave 1      Slave 2         Slave 3



               Load balancer




                       www.fromdual.com                       15
Der MySQL Scale-Out Ansatz

                        Application
                  ro
                                 rtw
                                              Slave Reporting
                            Master

                                                  Slave Backup

     Slave 1      Slave 2         Slave 3
                                            ...


               Load balancer




                       www.fromdual.com                          16
Weitere Möglichkeiten
    Irgendwann stehen wir beim Schreib-
    Durchsatz an...

●   Stärkeres I/O system
●   Solid State Drive/Disk (SSD)
      Bis > 1 Tbyte, €€€, ca. 10-20 x
      schneller (Marketing: 100x!)

●   MySQL Cluster
    In-Memory, Realtime, HP- und HA Datenbank
                           www.fromdual.com     17
MySQL Cluster
    Application   Application      Application     Application     Application
     NDB-API       NDB-API
                                                   Load balancer

                                   SQL Node 1      SQL Node 2      SQL Node 3
                                                                                 ...
Mgm Node 1


Mgm Node 2
                     Data Node 1            Data Node 2


                                     Sw.
                                      Sw.

                     Data Node 3            Data Node 4


                                www.fromdual.com                                  18
Und wenn das noch nicht reicht?
- Sharding! [9]
    „Horizontales Partitionieren“ der Daten
●   Separieren




●   Splitten
                     www.fromdual.com         19
Wie bereite ich meine Applikation
darauf vor?
●   ro / rw Datenbank-Verbindungen
●   modularisieren / kapseln
●   Asynchron und lose gekoppelt,
    Anforderungen lockern, Cachen
●   Messen, messen, messen...
●   Verschiedene Lasttest-Szenarios fahren.
●   Ich muss meine Applikation kennen!


                    www.fromdual.com          20
Literatur
●   Diese Präsentation:
    http://www.fromdual.com/presentations
    [1]   MySQL Enterprise Montior: http://dev.mysql.com/doc/refman/5.1/en/mem-introduction.html
    [2]   MyTop: http://jeremy.zawodny.com/mysql/mytop/
    [3]   InnoTop: http://www.xaprb.com/blog/2006/07/02/innotop-mysql-innodb-monitor/
    [4]   MySQL Activity Report: http://gert.sos.be/en/projects/mysqlar/
    [5]   MySQL Monitoring Solutions: http://www.shinguz.ch/MySQL/mysql_monitoring.html
    [6]   MySQL Datenbank Parameter: http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html
    [7]   Database Health Check for MySQL: http://www.shinguz.ch/database_health_check/
    [8]   MySQL Cluster: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html
    [9]   Sharding: http://en.wikipedia.org/wiki/Shard_%28database_architecture%29




                                                  www.fromdual.com                                         21
Fragen & Antworten



                    ?
            und sonst →

     oli.sennhauser@fromdual.com
              www.fromdual.com     22

Más contenido relacionado

La actualidad más candente

DOAG 2011: MySQL Replication
DOAG 2011: MySQL ReplicationDOAG 2011: MySQL Replication
DOAG 2011: MySQL ReplicationFromDual GmbH
 
MySQL Backup/Recovery
MySQL Backup/RecoveryMySQL Backup/Recovery
MySQL Backup/RecoveryFromDual GmbH
 
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?FromDual GmbH
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterFromDual GmbH
 
MySQL Cluster with Galera Cluster for MySQL
MySQL Cluster with Galera Cluster for MySQLMySQL Cluster with Galera Cluster for MySQL
MySQL Cluster with Galera Cluster for MySQLFromDual GmbH
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA'sFromDual GmbH
 
MySQL - New Features 5.6
MySQL - New Features 5.6MySQL - New Features 5.6
MySQL - New Features 5.6FromDual GmbH
 
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-ReplikationWeltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-ReplikationFromDual GmbH
 
MySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sMySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sFromDual GmbH
 
Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?FromDual GmbH
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenLenz Grimmer
 
MySQL Performance Tuning für Entwickler
MySQL Performance Tuning für EntwicklerMySQL Performance Tuning für Entwickler
MySQL Performance Tuning für EntwicklerFromDual GmbH
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLFromDual GmbH
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenLenz Grimmer
 
Helma Workshop
Helma WorkshopHelma Workshop
Helma WorkshopTriotex
 

La actualidad más candente (17)

DOAG 2011: MySQL Replication
DOAG 2011: MySQL ReplicationDOAG 2011: MySQL Replication
DOAG 2011: MySQL Replication
 
MySQL Backup/Recovery
MySQL Backup/RecoveryMySQL Backup/Recovery
MySQL Backup/Recovery
 
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
 
NoSQL with MySQL
NoSQL with MySQLNoSQL with MySQL
NoSQL with MySQL
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und Cluster
 
MySQL Cluster with Galera Cluster for MySQL
MySQL Cluster with Galera Cluster for MySQLMySQL Cluster with Galera Cluster for MySQL
MySQL Cluster with Galera Cluster for MySQL
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA's
 
MySQL - New Features 5.6
MySQL - New Features 5.6MySQL - New Features 5.6
MySQL - New Features 5.6
 
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-ReplikationWeltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
 
MySQL Backup
MySQL BackupMySQL Backup
MySQL Backup
 
MySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sMySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA's
 
Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL Hochverfügbarkeitslösungen
 
MySQL Performance Tuning für Entwickler
MySQL Performance Tuning für EntwicklerMySQL Performance Tuning für Entwickler
MySQL Performance Tuning für Entwickler
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQL
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL Hochverfügbarkeitslösungen
 
Helma Workshop
Helma WorkshopHelma Workshop
Helma Workshop
 

Destacado

Portable gates secure your warehouse
Portable gates secure your warehousePortable gates secure your warehouse
Portable gates secure your warehouseportable gates
 
Monthly lightning-talk-playback-201410
Monthly lightning-talk-playback-201410Monthly lightning-talk-playback-201410
Monthly lightning-talk-playback-201410Seiya Konno
 
About node-canvas
About node-canvasAbout node-canvas
About node-canvasSeiya Konno
 
Locality of (p)reference
Locality of (p)referenceLocality of (p)reference
Locality of (p)referenceFromDual GmbH
 
Sii topic 2 boot verbs keynote 1
Sii topic 2 boot verbs keynote 1Sii topic 2 boot verbs keynote 1
Sii topic 2 boot verbs keynote 1kn1164114
 

Destacado (6)

Portable gates secure your warehouse
Portable gates secure your warehousePortable gates secure your warehouse
Portable gates secure your warehouse
 
Monthly lightning-talk-playback-201410
Monthly lightning-talk-playback-201410Monthly lightning-talk-playback-201410
Monthly lightning-talk-playback-201410
 
About node-canvas
About node-canvasAbout node-canvas
About node-canvas
 
Locality of (p)reference
Locality of (p)referenceLocality of (p)reference
Locality of (p)reference
 
Sii topic 2 boot verbs keynote 1
Sii topic 2 boot verbs keynote 1Sii topic 2 boot verbs keynote 1
Sii topic 2 boot verbs keynote 1
 
УИАМП
УИАМПУИАМП
УИАМП
 

Similar a Internet Briefing 2010: Performance Tuning & Scale-Out mit MySQL

Data Warehouse (DWH) with MySQL
Data Warehouse (DWH) with MySQLData Warehouse (DWH) with MySQL
Data Warehouse (DWH) with MySQLFromDual GmbH
 
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungBack to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungMongoDB
 
MySQL Replikation - Die Eier legende Wollmilchsau?
MySQL Replikation - Die Eier legende Wollmilchsau?MySQL Replikation - Die Eier legende Wollmilchsau?
MySQL Replikation - Die Eier legende Wollmilchsau?FromDual GmbH
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability SolutionsFromDual GmbH
 
MySQL HA and Security
MySQL HA and SecurityMySQL HA and Security
MySQL HA and SecurityFromDual GmbH
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickKarin Patenge
 
MySQL Security SLAC 2015
MySQL Security SLAC 2015MySQL Security SLAC 2015
MySQL Security SLAC 2015FromDual GmbH
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Ulrike Schwinn
 
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2Jonathan Weiss
 
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...OPITZ CONSULTING Deutschland
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSRalf Ernst
 
Die Datenbank ist nicht immer Schuld - Gründe warum Datenbank-Migration schei...
Die Datenbank ist nicht immer Schuld - Gründe warum Datenbank-Migration schei...Die Datenbank ist nicht immer Schuld - Gründe warum Datenbank-Migration schei...
Die Datenbank ist nicht immer Schuld - Gründe warum Datenbank-Migration schei...Markus Flechtner
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!OPEN KNOWLEDGE GmbH
 
Leveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkLeveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkQAware GmbH
 

Similar a Internet Briefing 2010: Performance Tuning & Scale-Out mit MySQL (17)

Data Warehouse (DWH) with MySQL
Data Warehouse (DWH) with MySQLData Warehouse (DWH) with MySQL
Data Warehouse (DWH) with MySQL
 
Froscon 2012 DWH
Froscon 2012 DWHFroscon 2012 DWH
Froscon 2012 DWH
 
Scaling Rails
Scaling RailsScaling Rails
Scaling Rails
 
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungBack to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
 
MySQL Replikation - Die Eier legende Wollmilchsau?
MySQL Replikation - Die Eier legende Wollmilchsau?MySQL Replikation - Die Eier legende Wollmilchsau?
MySQL Replikation - Die Eier legende Wollmilchsau?
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 
MySQL HA and Security
MySQL HA and SecurityMySQL HA and Security
MySQL HA and Security
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 
Best Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in ContainernBest Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in Containern
 
MySQL Security SLAC 2015
MySQL Security SLAC 2015MySQL Security SLAC 2015
MySQL Security SLAC 2015
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
 
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
 
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OS
 
Die Datenbank ist nicht immer Schuld - Gründe warum Datenbank-Migration schei...
Die Datenbank ist nicht immer Schuld - Gründe warum Datenbank-Migration schei...Die Datenbank ist nicht immer Schuld - Gründe warum Datenbank-Migration schei...
Die Datenbank ist nicht immer Schuld - Gründe warum Datenbank-Migration schei...
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
Leveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkLeveraging the Power of Solr with Spark
Leveraging the Power of Solr with Spark
 

Más de FromDual GmbH

MariaDB/MySQL pitfalls - And how to come out again...
MariaDB/MySQL pitfalls - And how to come out again...MariaDB/MySQL pitfalls - And how to come out again...
MariaDB/MySQL pitfalls - And how to come out again...FromDual GmbH
 
MariaDB / MySQL tripping hazard and how to get out again?
MariaDB / MySQL tripping hazard and how to get out again?MariaDB / MySQL tripping hazard and how to get out again?
MariaDB / MySQL tripping hazard and how to get out again?FromDual GmbH
 
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration WorkshopPXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration WorkshopFromDual GmbH
 
IT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New FeaturesIT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New FeaturesFromDual GmbH
 
MariaDB 10.4 New Features
MariaDB 10.4 New FeaturesMariaDB 10.4 New Features
MariaDB 10.4 New FeaturesFromDual GmbH
 
MariaDB 10.2 New Features
MariaDB 10.2 New FeaturesMariaDB 10.2 New Features
MariaDB 10.2 New FeaturesFromDual GmbH
 
PERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaPERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaFromDual GmbH
 
Reading MySQL fingerprints
Reading MySQL fingerprintsReading MySQL fingerprints
Reading MySQL fingerprintsFromDual GmbH
 
High-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQLHigh-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQLFromDual GmbH
 
MySQL always-up with Galera Cluster
MySQL always-up with Galera ClusterMySQL always-up with Galera Cluster
MySQL always-up with Galera ClusterFromDual GmbH
 
MySQL Indexierung CeBIT 2014
MySQL Indexierung CeBIT 2014MySQL Indexierung CeBIT 2014
MySQL Indexierung CeBIT 2014FromDual GmbH
 
Need for Speed: Mysql indexing
Need for Speed: Mysql indexingNeed for Speed: Mysql indexing
Need for Speed: Mysql indexingFromDual GmbH
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAsFromDual GmbH
 
MySQL Performance Tuning Variables
MySQL Performance Tuning VariablesMySQL Performance Tuning Variables
MySQL Performance Tuning VariablesFromDual GmbH
 

Más de FromDual GmbH (16)

MariaDB/MySQL pitfalls - And how to come out again...
MariaDB/MySQL pitfalls - And how to come out again...MariaDB/MySQL pitfalls - And how to come out again...
MariaDB/MySQL pitfalls - And how to come out again...
 
MariaDB / MySQL tripping hazard and how to get out again?
MariaDB / MySQL tripping hazard and how to get out again?MariaDB / MySQL tripping hazard and how to get out again?
MariaDB / MySQL tripping hazard and how to get out again?
 
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration WorkshopPXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
 
IT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New FeaturesIT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New Features
 
MariaDB 10.4 New Features
MariaDB 10.4 New FeaturesMariaDB 10.4 New Features
MariaDB 10.4 New Features
 
MariaDB 10.2 New Features
MariaDB 10.2 New FeaturesMariaDB 10.2 New Features
MariaDB 10.2 New Features
 
PERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaPERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schema
 
Reading MySQL fingerprints
Reading MySQL fingerprintsReading MySQL fingerprints
Reading MySQL fingerprints
 
High-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQLHigh-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQL
 
MySQL always-up with Galera Cluster
MySQL always-up with Galera ClusterMySQL always-up with Galera Cluster
MySQL always-up with Galera Cluster
 
HA with Galera
HA with GaleraHA with Galera
HA with Galera
 
MySQL Indexierung CeBIT 2014
MySQL Indexierung CeBIT 2014MySQL Indexierung CeBIT 2014
MySQL Indexierung CeBIT 2014
 
Need for Speed: Mysql indexing
Need for Speed: Mysql indexingNeed for Speed: Mysql indexing
Need for Speed: Mysql indexing
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
MySQL Security
MySQL SecurityMySQL Security
MySQL Security
 
MySQL Performance Tuning Variables
MySQL Performance Tuning VariablesMySQL Performance Tuning Variables
MySQL Performance Tuning Variables
 

Internet Briefing 2010: Performance Tuning & Scale-Out mit MySQL

  • 1. Performance Tuning & Scale-Out mit MySQL Erfa-Gruppe Internet Briefing 2. März 2010 Oli Sennhauser Senior MySQL Consultant, FromDual oli.sennhauser@fromdual.com www.fromdual.com 1
  • 2. Inhalt ● Allgemeines zu Performance Tuning ● MySQL Performance Tuning ● Scale-Out Architekturen ● Und wie weiter? ● Fragen & Antworten www.fromdual.com 2
  • 3. Szenarien ● 3 Entwicklungsszenarien: www.fromdual.com 3
  • 4. Die FromDual Performance-Wippe Ursachen für schlechte Performance? www.fromdual.com 4
  • 5. Wo ist der Flaschenhals? ● Wir haben 4 Möglichkeiten: ● CPU (Taktrate, Single-Threading, SQL-Queries) ● Memory (RAM, 32/64-bit OS) ● Disk (RAID, SAN, I/O Cache) ● Network (selten und wenn, dann Konfiguration) Virtualisierung? www.fromdual.com 5
  • 6. Wie finde ich den Flaschenhals? ● shell> free ● shell> vmstat 1 ● shell> iostat -xk 1 ● shell> ifconfig ● Nagios, Cacti, MySQL Enterprise Monitor, etc. ● Windows: Performance Monitor Siehe man-Pages. www.fromdual.com 6
  • 7. Wie messe ich MySQL? ● mysql> SHOW PROCESSLIST; ● mysql> SHOW GLOBAL STATUS; ● mysql> SHOW ENGINE INNODB STATUS; ● MySQL Enterprise Montior [1] ● MyTop [2], InnoTop [3] ● MySQL Activity Report [4] oder: MySQL Monitoring Solutions [5] www.fromdual.com 7
  • 8. Die wichtigsten MySQL Datenbank Parameter [6] ● key_buffer_size (MyISAM: 25 – 33% RAM) ● innodb_buffer_pool_size (InnoDB: 80% RAM) ● innodb_log_file_size (InnoDB: 32 – 256 Mbyte) ● innodb_flush_log_at_trx_commit (InnoDB: 2) ● sync_binlog (InnoDB: 0 oder >> 1) ● query_cache_size (MySQL: 16 – 128 Mbyte) ● Database Health Check for MySQL [7] www.fromdual.com 8
  • 9. SQL Query Tuning ● Slow Query Log (slow_query_log, slow_query_log_file, long_query_time) ● log_queries_not_using_indexes (deprecated!) ● mysqldumpslow -s t slow.log → Profile ● EXPLAIN SELECT ... FROM ... → Execution Plan der Abfrage (nur SELECT) www.fromdual.com 9
  • 10. Scale-Up vs. Scale-Out Scale-Up ● Kosten ● MySQL Design Scale-Out ● Physikalische Flaschenhälse ● „Relaxation of Constraints“ www.fromdual.com 10
  • 11. Was für Komponenten nehme ich idealerweise? ● LAMP3 evtl. Java? ● „Mainstream“ → Linux (Solaris, Windows) ● 64-bit OS und Hardware (Intel, AMD, KEIN Sparc!) und viel RAM! ● Dediziertes I/O System (KEIN SAN, KEIN RAID-5!), schnelle Disks, Write Cache. ● >= 1 Gbit Netzwerk ● KEINE Virtualisierung! www.fromdual.com 11
  • 12. Der MySQL Scale-Out Ansatz Application DB www.fromdual.com 12
  • 13. Der MySQL Scale-Out Ansatz Application ro rtw Master Slave 1 www.fromdual.com 13
  • 14. Der MySQL Scale-Out Ansatz Application ro rtw Slave Reporting Master Slave 3 www.fromdual.com 14
  • 15. Der MySQL Scale-Out Ansatz Application ro rtw Slave Reporting Master Slave 1 Slave 2 Slave 3 Load balancer www.fromdual.com 15
  • 16. Der MySQL Scale-Out Ansatz Application ro rtw Slave Reporting Master Slave Backup Slave 1 Slave 2 Slave 3 ... Load balancer www.fromdual.com 16
  • 17. Weitere Möglichkeiten Irgendwann stehen wir beim Schreib- Durchsatz an... ● Stärkeres I/O system ● Solid State Drive/Disk (SSD) Bis > 1 Tbyte, €€€, ca. 10-20 x schneller (Marketing: 100x!) ● MySQL Cluster In-Memory, Realtime, HP- und HA Datenbank www.fromdual.com 17
  • 18. MySQL Cluster Application Application Application Application Application NDB-API NDB-API Load balancer SQL Node 1 SQL Node 2 SQL Node 3 ... Mgm Node 1 Mgm Node 2 Data Node 1 Data Node 2 Sw. Sw. Data Node 3 Data Node 4 www.fromdual.com 18
  • 19. Und wenn das noch nicht reicht? - Sharding! [9] „Horizontales Partitionieren“ der Daten ● Separieren ● Splitten www.fromdual.com 19
  • 20. Wie bereite ich meine Applikation darauf vor? ● ro / rw Datenbank-Verbindungen ● modularisieren / kapseln ● Asynchron und lose gekoppelt, Anforderungen lockern, Cachen ● Messen, messen, messen... ● Verschiedene Lasttest-Szenarios fahren. ● Ich muss meine Applikation kennen! www.fromdual.com 20
  • 21. Literatur ● Diese Präsentation: http://www.fromdual.com/presentations [1] MySQL Enterprise Montior: http://dev.mysql.com/doc/refman/5.1/en/mem-introduction.html [2] MyTop: http://jeremy.zawodny.com/mysql/mytop/ [3] InnoTop: http://www.xaprb.com/blog/2006/07/02/innotop-mysql-innodb-monitor/ [4] MySQL Activity Report: http://gert.sos.be/en/projects/mysqlar/ [5] MySQL Monitoring Solutions: http://www.shinguz.ch/MySQL/mysql_monitoring.html [6] MySQL Datenbank Parameter: http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html [7] Database Health Check for MySQL: http://www.shinguz.ch/database_health_check/ [8] MySQL Cluster: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html [9] Sharding: http://en.wikipedia.org/wiki/Shard_%28database_architecture%29 www.fromdual.com 21
  • 22. Fragen & Antworten ? und sonst → oli.sennhauser@fromdual.com www.fromdual.com 22