MySQL adoption: esperienze in ambienti mission-critical

100 %
0 %
Information about MySQL adoption: esperienze in ambienti mission-critical
Technology

Published on March 6, 2014

Author: TechAdvisorsBabel

Source: slideshare.net

Description

Il TechAdvisor Babel Emilio Scalise presenta una breve raccolta di esperienze maturate sul campo, illustrando alcune delle casistiche più comuni che gli specialisti tecnici incontrano giornalmente in ambienti mission-critical.

I punti trattati durante la presentazione sono:
- Come gestire un numero elevato di connessioni al db
- MyISAM vs. InnoDB: perché migrare
- La gestione di tabelle e/o tablespaces di grandi dimensioni
- Architetture “ingestibili”

Per saperne di più, scaricate l’articolo o guardate il video della presentazione del nostro TechAdvisor.

http://www.babel.it/it/centro-risorse/2014/03/09/72-mysql-adoption-esperienze-in-ambienti-mission-critical.html

MySQL Adoption Esperienze in ambienti mission-critical Emilio Scalise, Senior System Engineer, Babel MySQL Tech Tour – 18/02/2014 Babel – una business unit di Par-Tec S.p.A. - P.zza S. Benedetto da Norcia 33, 00040 Pomezia (RM)

Agenda • Chi è Babel • Casi di studio comuni: • • • • Troppe connessioni al db Migrazioni da MyISAM a InnoDB Tabelle e/o tablespaces “grandi” Architetture “ingestibili” • E’ tempo di migrare a MySQL Enterprise Edition

Chi siamo Babel - una business unit di Par-Tec S.p.A. - è un software & infrastructure system integrator specializzato nella fornitura di servizi professionali altamente qualificati e nella progettazione di soluzioni innovative per l’unified communication & collaboration, la virtualizzazione e il cloud computing, la sicurezza logica dei sistemi e dei dati, il monitoraggio dei sistemi e delle applicazioni, la privacy compliance. Il nostro team è attivamente coinvolto nelle principali comunità open-source sia come contributore che come mantainer di numerosi progetti.

Troppe connessioni al DB – La problematica Normalmente ogni connessione al db in MySQL equivale a: • 1 socket • 1 connection thread • un certo numero di risorse allocate (buffers, files ecc.) Con un alto numero di connessioni: • viene allocata più memoria • si ha un numero di context switch elevato → minore throughput! • in certi casi la memoria di sistema può non bastare → swapping Problematica comune in ambienti LAMP (Linux+Apache+PHP+MySQL) perché le prime librerie PHP non permettevano il pooling. Parametri sui quali intervenire: max_connections, open-files-limit Non esiste un hard limit per l’uso della memoria! • utilizzo massimo calcolabile: buffer globali + n°client * buffer connessioni

Troppe connessioni al DB – Le possibili soluzioni Thread cache → semplice da abilitare, comunemente usata • parametro server thread_cache_size • i thread di connessione sono riutilizzabili • MySQL > 5.6.8 abilitata di default Pooling, lato server → semplice da abilitare, solo su versione Enterprise • Enterprise Thread_pool plugin (MySQL Enterprise > 5.5.16) • gestione «smart» dei thread all’interno del server MySQL • 1 connessione <> 1 thread Pooling, lato client → richiede supporto client, migliori risultati • gruppo di connessioni al db gestite • usate per più di una trasazione e/o query • mantenute aperte, pronte all’uso (occhio ai firewall) • implementate da librerie / application server • diffusi in ambienti J2EE e .NET, meno in ambienti LAMP

Troppe connessioni al DB – Enterprise Thread Pool Fonte: MySQL 5.6: Improvements in Thread Pool

Da MyISAM ad InnoDB – Perché migrare? Molti Clienti che usano MySQL da lungo tempo usano lo storage engine MyISAM: • di default fino alla versione 5.1 • non transazionale • ottimizzato per il web 1.0 Perché migrare? • MyISAM è poco performante in presenza di concorrenza read-write • processi in stato "locked“ • questo perché i lock su MyISAM sono (solo) a livello di tabella • InnoDB gestisce lock a livello di riga e il multiversioning (MVCC) • ottimi per workload misti lettura/scrittura • I/O su disco ottimizzato: • gestione cache nativa (buffer pool cache) • MyISAM invece si affida alle cache del filesystem fornite dall’OS per i dati

Da MyISAM ad InnoDB – Pro e contro Principali vantaggi di InnoDB • Crash safe • il recovery dopo un crash è automatico • diminuzione del down-time • Transazionalità e foreign key • mantenimento della consistenza della base dati • Affidabilità scrittura dati (Durability) • al commit i dati sono scritti effettivamente su disco • Strumenti di backup a caldo (logico o binario) • Accesso ai dati anche di tipo NoSQL (Memcached) Contro • Overhead maggiore (gestione delle transazioni) • Circa 30% di spazio aggiuntivo su disco • ovviabile con InnoDB tablespace Barracuda Compressed • Più lento di MyISAM per inserimenti bulk

Da MyISAM ad InnoDB – Confronto delle performance Fonte: Storage Engine Performance Benchmark for MyISAM and InnoDB

Da MyISAM ad InnoDB – Punti di attenzione Principali punti da affrontare prima della migrazione • Considerare se rimanere su MyISAM: • inserimenti bulk • query con molti full table scan • Compatibilità delle features usate su MyISAM: • indici FullText (non disponibili se MySQL < 5.6.4) • indici Spatial (solo dati supportati in InnoDB, MySQL > 5.0.16) • Utilizzo del modello transazionale da parte delle applicazioni client: • gestione dei deadlock e dei rollback, lock espliciti • Aumento della richiesta di spazio disco (+30%) Principali punti da affrontare durante la migrazione • Verifica delle caratteristiche delle primary key • Tuning delle cache, dei thread e dei buffer • Politiche di backup • strategie e tool differenti

Tabelle e/o tablespaces “grandi” – Il problema Spesso bisogna gestire tabelle molto grandi (ordine di GB): • difficili da mantenere, più lente per query complesse Se si utilizza InnoDB, esiste anche il caso in cui: • innodb_file_per_table=0 (default per MySQL < 5.6.6) • si hanno più tabelle, indici, db all’interno dello stesso tablespace Principali problemi • Frammentazione • Tempi di manutenzione (indici, check, recovery se MyISAM) • L’eventuale corruzione dei file su disco può creare grossi problemi N.B. I tablespace InnoDB non vengono mai ridotti (shrink) anche se vengono rimosse grosse quantità di dati!

Tabelle e/o tablespaces “grandi” – Le soluzioni Partitioning • Consente di separare i dati orizzontalmente, per gruppi di righe • CREATE/ALTER TABLE xxxxx PARTITION BY yyyyy • Possibilità di dividere la tabella per intervalli, hash, funzione • MySQL > 5.1, migliorato significativamente con MySQL > 5.5 • Partition pruning: nelle query vengono coinvolte solo le partizioni necessarie Utilizzo di tablespace multipli su InnoDB • Per abilitarli inserire il parametro innodb_file_per_table=1 su my.ini/my.cnf • valido solo per le tabelle create successivamente • Per migrare i dati già esistenti l’unica soluzione è fare un dump logico e reimportarlo totalmente! • Il tablespace globale ibdata1 resta della stessa dimensione (no shrink) • CONSIGLIO: abilitare innodb_file_per_table prima di popolare l’istanza N.B. tablespace multipli + partitioning = 1 tablespace per singola partizione

Architetture «ingestibili» Istanze «monolitiche» • 1 DBMS per tante applicazioni • Se l’istanza MySQL ha problemi, ne risentono tutte le app collegate! • Quando schedulare la manutenzione programmata? E i backup? Logica applicativa server-side • Uso e abuso delle stored procedures/functions • difficili da sviluppare (testing/debug) • linguaggio limitato (MySQL accetta procedure solo in SQL) • difficoltà nella gestione del versioning • Più utili se forniscono: • vantaggi prestazionali (località dei dati) • security (data hiding)

E’ tempo di migrare a MySQL Enterprise Edition Babel e Oracle vi invitano a provare MySQL Enterprise Edition, la versione certificata, ricca di tools e pienamente supportata del database open source più diffuso al mondo. ADOPTION PACK MIGRATION PACK SUPPORT PACK Assistenza in fase di setup della nuova infrastruttura basata su MySQL EE. Migrazione assistita dei servizi mission-critical da una piattaforma alternativa per sfruttare rapidamente tutti i vantaggi di MySQL EE. Servizi professionali remoti e on-site per consolidare e far evolvere la vostra infrastruttura basata su MySQL EE. VANTAGGI: • Licenza MySQL EE con uno sconto sul listino. • Pacchetto di 5gg di servizi professionali ad un prezzo vantaggioso. VANTAGGI: • Licenza MySQL EE con uno sconto sul listino. • Pacchetto di servizi professionali ad un prezzo vantaggioso. VANTAGGI: • Pacchetto di 20gg di servizi professionali ad un prezzo vantaggioso.

Grazie per l’attenzione! Emilio Scalise escalise@babel.it +39 3406596078 Sede Legale e Amministrativa: via Alfredo Campanini 6 20124 Milano Tel: 02/66.732.1 – Fax: 02/66.732.300 E-mail: info@par-tec.it Web: www.par-tec.it Area Centro-Sud: p.zza San Benedetto da Norcia 33 00040 Pomezia (RM) Tel: 06/9826.9600 – Fax: 06/9826.9680 E-mail: babel@par-tec.it Web: www.babel.it

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

MySQL adoption: esperienze in ambienti mission-critical ...

Il TechAdvisor Babel Emilio Scalise presenta una breve raccolta di esperienze maturate sul campo, illustrando alcune delle casistiche più ...
Read more

MySQL adoption: esperienze in ambienti mission-critical

Il TechAdvisor Emilio Scalise presenta una breve raccolta di esperienze maturate sul campo, illustrando alcune delle casistiche più comuni che gli ...
Read more

Visualizza articoli per tag: mission critical

MySQL adoption: esperienze in ambienti ... balabit cloud ibm ibm storwize ibm system x infrastructure solutions it security jboss mission critical ...
Read more

⭐MySQL Adoption. Esperienze in ambienti mission-critical ...

MySQL Adoption. Esperienze in ambienti mission-critical. Emilio Scalise, Senior System Engineer, Babel MySQL Tech Tour 18/02/2014
Read more

⭐MySQL: il database open source che ha sfidato i giganti

MySQL Adoption. Esperienze in ambienti mission-critical. Emilio Scalise, ... MySQL Adoption Esperienze in ambienti mission-critical Emilio Scalise, ...
Read more

L' Aiuto reciproco in classe. Esperienze di peer tutoring ...

Esperienze di peer tutoring nella scuola. ... MySQL adoption: esperienze in ambienti mission-critical ... peer learning ambienti di apprendimento
Read more

Oracle MySQL Tech Tour: prestazioni, scalabilità e alta ...

Oracle MySQL Tech Tour: prestazioni ... gli specialisti tecnici incontrano giornalmente in ambienti mission-critical. ... MySQL adoption: esperienze in ...
Read more

MySQL: il database open source che ha sfidato i giganti ...

Emilio Scalise, TechAdvisor Babel esperto nell'integrazione di prodotti open source, ripercorre la storia del database MySQL e offre consigli ...
Read more