30 Gennaio 2019

Percona Toolkit

Profiliamo le nostre Query MySQL con Percona Toolkit.

La profilazione delle Query SQL è un processo che implica l’analisi dettagliata dell’efficienza di una query SQL in un database. Questo processo aiuta gli sviluppatori di database a identificare potenziali bug, colli di bottiglia, inefficienze o problemi di prestazioni che possono ostacolare la velocità e l’efficienza delle query SQL.

La profilazione delle query può essere assolutamente essenziale per garantire il massimo delle prestazioni di un’applicazione. Un numero significativo di problemi di performance può essere risolto ottimizzando le query SQL. Queste ottimizzazioni possono includere la riduzione del numero di query eseguite, la modifica delle query per utilizzare indici più efficienti, o la ridisegnazione delle strutture dei dati per ridurre il tempo di elaborazione.

Vediamo ora alcuni dei vantaggi derivanti dall’ottimizzazione delle query SQL:

  1. Miglioramento delle Prestazioni: Query ottimizzate possono eseguire operazioni in modo più veloce rispetto a quelle non ottimizzate. Ciò si traduce in un aumento generale delle prestazioni dell’applicazione o del sistema.
  2. Efficienza di Risorse: Query efficienti richiedono meno risorse di sistema, come memoria e CPU. Ciò significa che il sistema può gestire più richieste contemporaneamente, migliorando la capacità di servire più utenti contemporaneamente.
  3. Risposta Più Veloce: Una query ottimizzata riduce il tempo di attesa dell’utente finale. L’esperienza dell’utente finale sarà quindi migliorata, poiché l’utente non dovrà aspettare molto per ottenere risposte alle sue richieste.
  4. Scalabilità: Un database con query ottimizzate sarà più facile da scalare, poiché ogni query utilizza meno risorse e l’elaborazione viene eseguita più velocemente. Ciò si traduce in un sistema più resiliente quando il carico aumenta.

Ricorda che l’obiettivo principale è quello di garantire che le tue applicazioni o sistemi siano efficienti, reattivi e scalabili. La profilazione e l’ottimizzazione delle query SQL è un passo fondamentale per raggiungere questo obiettivo.

Introduzione a Percona Toolkit.

Percona è una società riconosciuta a livello internazionale per la sua esperienza nel settore dei database open source, specializzata nella fornitura di servizi e software innovativi per MySQL, MariaDB, MongoDB, e PostgreSQL. Fornisce soluzioni a clienti di tutto il mondo per migliorare l’efficienza, la performance e la scalabilità dei loro database. Percona si impegna a sviluppare strumenti e tecniche per aiutare gli sviluppatori e gli amministratori di database a gestire meglio i loro sistemi.

Uno degli strumenti più noti e utilizzati di Percona è il Percona Toolkit. Questo set di strumenti avanzati è progettato per gestire molte delle attività complesse e ripetitive che gli amministratori di database devono affrontare. Percona Toolkit può aiutare a rendere queste operazioni più efficienti, più affidabili e più sicure.

Il Toolkit è una collezione di più di 30 strumenti avanzati per amministratori e sviluppatori di MySQL. Questi strumenti affrontano una serie di problemi e compiti che vanno dalla gestione di replica, alla profilazione delle query, al backup dei dati, alla verifica della consistenza dei dati.

Tra le caratteristiche principali di Percona Toolkit, la capacità di profilare le query SQL è tra le più apprezzate. Lo strumento di profilazione delle query, noto come pt-query-digest, può analizzare i log delle query di MySQL per determinare dove il database sta spendendo il suo tempo. pt-query-digest offre una vista completa delle query SQL che sono state eseguite, permettendo agli amministratori di database di identificare facilmente quali query richiedono più tempo o risorse.

Un altro strumento notevole incluso nel Percona Toolkit è pt-table-checksum, che può essere usato per verificare la consistenza dei dati tra un server MySQL master e i suoi slave. Questo strumento è particolarmente utile per mantenere la sincronizzazione dei dati in un ambiente di replica.

Percona Toolkit offre una serie di vantaggi per gli amministratori di database:

  1. Ottimizzazione delle Prestazioni: Percona Toolkit può aiutare ad identificare le query SQL che consumano più risorse e tempo. Questo può portare a significative migliorie nelle performance del database.
  2. Sicurezza e Affidabilità: Gli strumenti inclusi nel toolkit sono sviluppati con un forte focus sulla sicurezza e l’affidabilità, aiutando a prevenire problemi che possono portare a perdita di dati o a interruzioni del servizio.
  3. Risparmio di Tempo: Percona Toolkit può automatizzare molte delle attività ripetitive che gli amministratori di database devono affrontare, risparmiando tempo prezioso che può essere utilizzato per altre attività.
  4. Compatibilità: Percona Toolkit è compatibile con MySQL, Percona Server per MySQL, MariaDB, e altre varianti di MySQL.

Percona Toolkit è uno strumento essenziale per gli amministratori di database che desiderano migliorare le performance dei loro sistemi, risparmiare tempo, e mantenere la sicurezza e l’affidabilità dei loro database. Le sue potenti funzionalità di profilazione delle query SQL lo rendono uno strumento di grande valore per ottimizzare le prestazioni dei database.

Percona Toolkit Query Digest

Il pt-query-digest è una componente essenziale del Percona Toolkit ed è stato progettato specificamente per analizzare, aggregare e riportare le statistiche sulle query SQL eseguite su un database MySQL. Questo strumento ha lo scopo di individuare le query che richiedono il maggior tempo di esecuzione o che consumano più risorse, fornendo un quadro dettagliato delle operazioni di database e permettendo agli sviluppatori e agli amministratori di concentrarsi sulle aree che necessitano di ottimizzazione.

Pt-query-digest può analizzare una varietà di input, compresi i log delle query lente di MySQL, i processlist in esecuzione, e i file di log binari. Il tool può quindi produrre un rapporto che riassume le query, ordinandole in base all’ordine di costo totale (il tempo totale trascorso nell’esecuzione di una particolare query). Questo rende semplice l’identificazione delle query che stanno influenzando negativamente le prestazioni del database.

Inoltre, pt-query-digest non solo rileva le query lente, ma può anche identificare le anomalie e i pattern nelle query, il che può essere di grande aiuto nel rilevamento di problemi potenziali o bug nel codice dell’applicazione.

Tra i principali vantaggi di pt-query-digest ci sono:

  1. Identificazione delle Query Problematiche: Pt-query-digest permette agli amministratori di database di identificare rapidamente le query che stanno consumando il maggior tempo o le maggiori risorse, permettendo loro di concentrarsi sull’ottimizzazione di queste query.
  2. Prevenzione di Problemi di Performance: Grazie alla capacità di identificare i pattern e le anomalie nelle query, pt-query-digest può aiutare a prevenire problemi di performance prima che diventino critici.
  3. Ottimizzazione delle Prestazioni del Database: Pt-query-digest fornisce dati preziosi che possono essere utilizzati per ottimizzare le prestazioni del database. Questo può includere la modifica delle query problematiche, la modifica della struttura del database, o la modifica delle impostazioni del server MySQL.
  4. Analisi Dettagliata: Pt-query-digest fornisce un’analisi dettagliata delle query SQL, rendendo possibile l’identificazione di colli di bottiglia o inefficienze nelle query. Questa analisi può essere molto utile per l’ottimizzazione delle prestazioni.

In conclusione, pt-query-digest è uno strumento potente e versatile che può fornire una visione preziosa delle prestazioni del database, permettendo agli amministratori e agli sviluppatori di migliorare l’efficienza e la velocità delle loro applicazioni.

Un esempio d’uso pratico di Percona Toolkit Query Digest.

Negli ultimi mesi, ho usato MySQL con alcune problematiche su un server di un cliente. Avevo installato MySQL, MariaDB e Percona SQL Server con gli stessi dati.

Dopo alcuni giorni ho guardato i log delle query lente (slow query), e ho visto che la dimensione del file è di circa 300 MB. Analizzare il file avrebbe potuto richiedere davvero molto tempo ma il Percona Toolkit ha aiutato. Il toolkit può funzionare con MySQL, MariaDB o Percona SQL Server. Ci sono un sacco di comandi al suo interno, ma ne ho solo uno per analizzare la query lenta e riportare i risultati.

Il log delle query lente ha una dimensione di circa 300 MB. Ci sarebbe voluto un grande sforzo per scorrere e scoprire cosa è successo e analizzare tutti i record. Ecco come Percona Toolkit ha aiutato moltissimo :

il comando ‘pt-query-digest’ di percona-toolkit prende il log delle query lente e genera un sommario che è più o meno simile a mysql.

pt-query-digest / var / log / mysql / slow_query_log

Questo contiene il file e produce un report che è in linea con il report ADDM che otteniamo in Oracle.

Di seguito è riportato un riepilogo dell’analisi del file grezzo di 300 MB:

Tutto si riduce a 6 query che richiedono la nostra attenzione. Inoltre, tra le sei, l’ottimizzazione delle prime due di loro hanno giovato un miglioramento quasi del 90%.

Quindi, se si esegue un database basato su MySQL, percona-toolkit è uno strumento indispensabile .

Ho usato solo questo singolo comando per necessità, nonostante sia molto potente e robusto, sfoglia gli altri comandi indicati nel link qui

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Hetzner Online GmbH detiene i diritti su Hetzner®; OVHcloud è un marchio registrato di OVH Groupe SAS; cPanel®, L.L.C. detiene i diritti su cPanel®; Plesk® è un marchio registrato di Plesk International GmbH; Facebook, Inc. detiene i diritti su Facebook®. Questo sito non è affiliato, sponsorizzato o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello europeo da MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italia.

Torna in alto