Introduzioni
Il sistema Advisor può fornire raccomandazioni sulle variabili del server analizzando le variabili di stato del server.
Notate comunque che questo sistema fornisce raccomandazioni basate su semplici calcoli e regole pratiche che non necessariamente si possono applicare al vostro sistema.
Prima di cambiare qualche configurazione, siate sicure di sapere cosa state cambiando (dopo aver letto la documentazione) e come ripristinare il cambiamento. Una regolazione sbagliata può avere effetti negativi sulle prestazioni.
Il modo migliore per regolare il vostro sistema sarebbe quello di cambiare solo un parametro alla volta, osservare o fare un benchmark del database, e ripristinare il cambiamento se non si riscontra un miglioramento chiaramente misurabile.
{"parse":{"errors":[]},"run":{"fired":[{"name":"Tempo di query lunghe","formula":"long_query_time","test":"value >= 10","issue":"(long_query_time) \u00e8 impostato a 10 secondi o pi\u00f9, quindi solo le query lente che richiedono pi\u00f9 di 10 secondi vengono registrate nel log.","recommendation":"Si suggerisce di impostare <a href=\"server_variables.php?filter=long_query_time\">long_query_time<\/a> a un valore inferiore, a seconda del vostro ambiente. Di solito si suggerisce un valore di 1-5 secondi.","justification":"long_query_time \u00e8 impostato a 10 secondi.","id":"Long query time"},{"name":"Log delle quey lente","precondition":"PMA_MYSQL_INT_VERSION >= 50600","formula":"slow_query_log","test":"value == 'OFF'","issue":"Lo slow_query_log \u00e8 disabilitato.","recommendation":"Abilitate il log delle query lente impostando <a href=\"server_variables.php?filter=slow_query_log\">slow_query_log<\/a> a 'ON'. Questo aiuter\u00e0 nella risoluzione dei problemi per le query con cattive prestazioni.","justification":"slow_query_log \u00e8 impostato a 'OFF'","id":"Slow query logging"},{"name":"Oridna le righe","formula":"Sort_rows \/ Uptime","test":"value * 60 >= 1","issue":"Ci sono molte righe da ordinare.","recommendation":"Sebbene non ci sia nulla di sbagliato nell'avere un'alto numero di righe da ordinare, potreste voler essere sicuri che le query che richiedono molti ordinamenti usino campi indicizzati nella clausola ORDER BY, poich\u00e9 questo risulterebbe in un ordinamento molto pi\u00f9 veloce.","justification":"Media di righe ordinate: 13,08 al minuto","id":"Sort rows"},{"name":"Frequenza di join senza indici","formula":"(Select_range_check + Select_scan + Select_full_join) \/ Uptime","test":"value * 60 * 60 > 1","issue":"Ci sono troppe join prive di indici.","recommendation":"Significa che alcune join richiedono una scansione dell'intera tabella collegata. Aggiungendo indici alle colonne utilizzate nelle condizioni di join, si otterranno notevoli riduzioni dei tempi di esecuzione.","justification":"Media di join di tabella: 17,97 al minuto, questo valore dovrebbe essere inferiore a 1 all'ora","id":"Rate of joins without indexes"},{"name":"Tasso di lettura della prima voce nell'indice","formula":"Handler_read_first \/ Uptime","test":"value * 60 * 60 > 1","issue":"Il tasso di lettura della prima voce nell'indice \u00e8 alto.","recommendation":"Questo indica solitamente frequenti scansioni complete dell'indice. Scansioni complete dell'indice sono pi\u00f9 veloci delle scansioni di tabella, ma richiedono molto utilizzo della CPU in grandi tabelle, se tali tabelle hanno o hanno avuto un volume elevato di UPDATE e DELETE query, l'esecuzione di 'OPTIMIZE TABLE' potrebbe ridurre la quantit\u00e0 delle e\/o velocizzare le scansioni complete dell'indice. Oltre a questo scansioni complete dell'indice possono essere ridotte solo riscrivendo le query.","justification":"Media di scansioni dell'indice: 14,99 all'ora, questo valore dovrebbe essere inferiore a 1 all'ora","id":"Rate of reading first index entry"},{"name":"Tasso di lettura in posizione fissa","formula":"Handler_read_rnd \/ Uptime","test":"value * 60 * 60 > 1","issue":"Il tasso di lettura dei dati da una posizione fissa \u00e8 alto.","recommendation":"Questo indica che molte query richiedono l'ordinamento dei risultati e\/o la scansione completa della tabella, includendo query con join che non usa gli indici. Aggiungete gli indici ove possibile.","justification":"Tasso medio di lettura su posizione fissa: 13,03 al minuto, questo valore dovrebbe essere inferiore a 1 all'ora","id":"Rate of reading fixed position"},{"name":"Frequenza di lettura della riga nella prossima tabella","formula":"Handler_read_rnd_next \/ Uptime","test":"value * 60 * 60 > 1","issue":"La frequenza di lettura della riga nella prossima tabella \u00e8 alta.","recommendation":"Questo indica che molte query stanno facendo scansioni complete su tabella. Aggiungete degli indici ove possibile.","justification":"Tasso di lettura della riga successiva nella tabella: 12,62 al secondo, questo valore dovrebbe essere inferiore a 1 all'ora","id":"Rate of reading next table row"},{"name":"Frequenza disco temporaneo","precondition":"!fired('Percentage of temp tables on disk')","formula":"Created_tmp_disk_tables \/ Uptime","test":"value * 60 * 60 > 1","issue":"Molte tabelle temporanee vengono scritte nel disco invece di essere mantenute in memoria.","recommendation":"Incrementare <a href=\"server_variables.php?filter=max_heap_table_size\">max_heap_table_size<\/a> e <a href=\"server_variables.php?filter=tmp_table_size\">tmp_table_size<\/a> potrebbe risolvere il problema. Tuttavia alcune tabelle temporanee vengono sempre scritte sul disco, indipendentemente dal valore di queste variabili. Per eliminarle dovrete riscrivere le query per evitare queste condizioni (All'interno delle tabelle temporanee: Presenza di un campo BLOB o di un TEXT o presenza di un campo pi\u00f9 grande di 512 byte) come menzionato nella <a href=\".\/url.php?url=https%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Finternal-temporary-tables.html\" target=\"_blank\" rel=\"noopener noreferrer\">Documentazione MySQL<\/a>","justification":"Tasso di tabelle temporanee che verranno scritte su disco: 1,68 al minuto, questo valore dovrebbe essere inferiore a 1 all'ora","id":"Temp disk rate"},{"name":"Massima % di utilizzo del key buffer MyISAM","precondition":"key_buffer_size > 0","formula":"Key_blocks_used * key_cache_block_size \/ key_buffer_size * 100","test":"value < 95","issue":"Bassa percentuale di utilizzo del buffer delle chiavi MyISAM (cache degli indici).","recommendation":"Potrebbe essere necessario diminuire la dimensione di <a href=\"server_variables.php?filter=key_buffer_size\">key_buffer_size<\/a>, ricontrollare le tabelle per verificare se gli indici sono stati rimossi, oppure esaminare le query e controllare che siano utilizzati gli indici che ci si aspetta.","justification":"Masisma % MyISAM key buffer mai usata: 0%, questo valore dovrebbe essere sopra il 95%","id":"Max % MyISAM key buffer ever used"},{"name":"Cache della query disabilitata","formula":"query_cache_size","test":"value == 0 || query_cache_type == 'OFF' || query_cache_type == '0'","issue":"La cache delle query non \u00e8 abilitata.","recommendation":"E' noto che la cache delle query pu\u00f2 migliorare notevolmente le prestazioni se configurata correttamente. Abilitatela impostando <a href=\"server_variables.php?filter=query_cache_size\">query_cache_size<\/a> a un valore in MiB di due cifre e impostando <a href=\"server_variables.php?filter=query_cache_type\">query_cache_type<\/a> a 'ON'. <b>Nota:<\/b> Se state usando memcached, ignorate questo suggerimento.","justification":"query_cache_size \u00e8 impostato a 0 or query_cache_type \u00e8 impostato a 'OFF'","id":"Query cache disabled"}],"notfired":[{"name":"Uptime inferiore ad un giorno","formula":"Uptime","test":"value < 86400","issue":"Il server \u00e8 stato in esecuzione per un periodo inferiore ad 1 giorno, i suggerimenti per migliorarne l'efficienza potrebbero non essere accurati.","recommendation":"Per ottenere valori medi pi\u00f9 realistici si raccomanda di lasciare il server in esecuzione per pi\u00f9 di un giorno prima di lanciare questo analizzatore","justification":"L'uptime \u00e8 solo 9 giorni, 14 ore, 1 minuti e 55 secondi","id":"Uptime below one day"},{"name":"Question al di sotto di 1.000","formula":"Questions","test":"value < 1000","issue":"Sono stati lanciate meno di 1.000 question su questo server. Le raccomandazioni potrebbero non essere precise.","recommendation":"Lasciate attivo il server per un periodo maggiore finch\u00e9 non abbia eseguito un numero pi\u00f9 grande di query.","justification":"Quantit\u00e0 corrente di Question: 384665","id":"Questions below 1,000"},{"name":"Percentuale di query lente","precondition":"Questions > 0","formula":"Slow_queries \/ Questions * 100","test":"value >= 5","issue":"Ci sono molte query lente rispetto al numero totale di query.","recommendation":"Potreste voler incrementare <a href=\"server_variables.php?filter=long_query_time\">long_query_time<\/a> oppure ottimizzare le query elencate nel log delle quey lente","justification":"Il tasso di query lente dovrebbe essere al di sotto di w 5%, il tuo valore \u00e8 0%.","id":"Percentage of slow queries"},{"name":"Tasso di query lente","precondition":"Questions > 0","formula":"(Slow_queries \/ Questions * 100) \/ Uptime","test":"value * 60 * 60 > 1","issue":"Si riscontra un'alta percentuale di query lente rispetto all'uptime del server.","recommendation":"Potreste voler incrementare <a href=\"server_variables.php?filter=long_query_time\">long_query_time<\/a> oppure ottimizzare le query elencate nel log delle quey lente","justification":"Si rileva un tasso di query lente di <0,01 al giorno all'ora, mentre dovreste averne meno dell'1% all'ora.","id":"Slow query rate"},{"name":"Cancella la serie","formula":"version","test":"substr(value,0,2) <= '5.' && substr(value,2,1) < 1","issue":"La versione del server MySQL \u00e8 inferiore a 5.1.","recommendation":"E' consigliabile effettuare un aggiornamento poich\u00e9 MySQL 5.1 ha migliorato le prestazioni e MySQL 5.5. ancora di pi\u00f9.","justification":"Versione corrente: 10.4.11-MariaDB","id":"Release Series"},{"name":"Versione minore","precondition":"! fired('Release Series')","formula":"version","test":"substr(value,0,2) <= '5.' && substr(value,2,1) <= 1 && substr(value,4,2) < 30","issue":"Versione inferiore a 5.1.30 (la prima release GA della 5.1).","recommendation":"E' consigliabile effettuare un aggiornamento poich\u00e9 le recenti versioni MySQL 5.1 hanno migliorato le prestazioni e MySQL 5.5. ancora di pi\u00f9.","justification":"Versione corrente: 10.4.11-MariaDB","id":"Minor Version"},{"name":"Versione minore","precondition":"! fired('Release Series')","formula":"version","test":"substr(value,0,1) == 5 && substr(value,2,1) == 5 && substr(value,4,2) < 8","issue":"Versione inferiore a 5.5.8 (la prima release GA della 5.5).","recommendation":"Dovresti effettuare l'aggiornamento ad una versione stabile di MySQL 5.5.","justification":"Versione corrente: 10.4.11-MariaDB","id":"Minor Version"},{"name":"Distribuzione","formula":"version_comment","test":"preg_match('\/source\/i',value)","issue":"Questa versione \u00e8 stata compilata dal sorgente, non \u00e8 un eseguibile ufficiale di MySQL.","recommendation":"Se non avete compilato dal sorgente, potete usare un pacchetto modificato da una distribuzione. Il manuale MySQL risulta accurato solo per gli eseguibili ufficiali MySQL, non per tutti i pacchetti delle distribuzioni (come RedHat, Debian\/Ubuntu ecc.).","justification":"'source' trovato nel version_comment","id":"Distribution"},{"name":"Distribuzione","formula":"version_comment","test":"preg_match('\/percona\/i',value)","issue":"Il manuale MySQL \u00e8 accurato solo per gli eseguibili ufficiali MySQL.","recommendation":"La documentazione su Percona si trova qui <a href=\".\/url.php?url=https%3A%2F%2Fwww.percona.com%2Fsoftware%2Fdocumentation%2F\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.percona.com\/software\/documentation\/<\/a>","justification":"'percona' trovato nel version_comment","id":"Distribution"},{"name":"Architettura MySQL","formula":"system_memory","test":"value > 3072*1024 && !preg_match('\/64\/',version_compile_machine) && !preg_match('\/64\/',version_compile_os)","issue":"MySQL non \u00e8 compilato come pacchetto a 64-bit.","recommendation":"La memoria disponibile \u00e8 superiore a 3GiB (supponendo che il server sia in localhost), quindi MySQL potrebbe non riuscire ad accedere a tutta la memoria disponibile. Si consiglia di installare la versione a 64-bit di MySQL.","justification":"Memoria disponibile su questo host: 0 B","id":"MySQL Architecture"},{"name":"Metodo di caching della query","precondition":"!fired('Query cache disabled')","formula":"Questions \/ Uptime","test":"value > 100","issue":"Metodo di caching subottimale.","recommendation":"State usando la cache delle query MySQL con un traffico di database piuttosto alto. Potrebbe essere utile prendere in considerazione <a href=\".\/url.php?url=https%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fha-memcached.html\" target=\"_blank\" rel=\"noopener noreferrer\">memcached<\/a> invece della cache delle query MySQL, soprattutto se avete slave multipli.","justification":"La cache delle query \u00e8 abilitata e il server riceve 0 query al secondo. Questa regola si attiva se ci sono pi\u00f9 di 100 query al secondo.","id":"Query caching method"},{"name":"Percentuale di ordinamenti che producono tabelle temporanee","precondition":"Sort_scan + Sort_range > 0","formula":"Sort_merge_passes \/ (Sort_scan + Sort_range) * 100","test":"value > 10","issue":"Troppi ordinamenti stanno creando tabelle temporanee.","recommendation":"Valutate se incrementare il valore di <a href=\"server_variables.php?filter=sort_buffer_size\">sort_buffer_size<\/a> e\/o <a href=\"server_variables.php?filter=read_rnd_buffer_size\">read_rnd_buffer_size<\/a>, secondo i limiti di memoria del vostro sistema.","justification":"0% di tutti gli ordinamenti causano la creazione di tabelle temporanee, questo valore dovrebbe essere inferiore al 10%.","id":"Percentage of sorts that cause temporary tables"},{"name":"Frequenza di ordinamenti che producono tabelle temporanee","formula":"Sort_merge_passes \/ Uptime","test":"value * 60 * 60 > 1","issue":"Troppi ordinamenti stanno creando tabelle temporanee.","recommendation":"Valutate se incrementare il valore di <a href=\"server_variables.php?filter=sort_buffer_size\">sort_buffer_size<\/a> e\/o <a href=\"server_variables.php?filter=read_rnd_buffer_size\">read_rnd_buffer_size<\/a>, secondo i limiti di memoria del vostro sistema.","justification":"Media di tabelle temporanee: <0,01 al giorno, questo valore dovrebbe essere inferiore a 1 all'ora.","id":"Rate of sorts that cause temporary tables"},{"name":"Differenti tmp_table_size e max_heap_table_size","formula":"tmp_table_size - max_heap_table_size","test":"value !=0","issue":"{tmp_table_size} e {max_heap_table_size} non coincidono.","recommendation":"Se avete modificato intenzionalmente una delle due: Il server utilizza il valore pi\u00f9 basso di entrambe per determinare la dimensione massima delle tabelle in-memory. Quindi, se volete aumentare il limite della tabella in-memory, dovete incrementare anche l'altro valore.","justification":"I valori attuali di tmp_table_size sono: 16.00 MiB, max_heap_table_size: 16.00 MiB","id":"Different tmp_table_size and max_heap_table_size"},{"name":"Percentuale di tabelle temporanee su disco","precondition":"Created_tmp_tables + Created_tmp_disk_tables > 0","formula":"Created_tmp_disk_tables \/ (Created_tmp_tables + Created_tmp_disk_tables) * 100","test":"value > 25","issue":"Molte tabelle temporanee vengono scritte nel disco invece di essere mantenute in memoria.","recommendation":"Incrementare <a href=\"server_variables.php?filter=max_heap_table_size\">max_heap_table_size<\/a> e <a href=\"server_variables.php?filter=tmp_table_size\">tmp_table_size<\/a> potrebbe risolvere il problema. Tuttavia alcune tabelle temporanee vengono sempre scritte sul disco, indipendentemente dal valore di queste variabili. Per eliminarle dovrete riscrivere le query per evitare queste condizioni (All'interno delle tabelle temporanee: Presenza di un campo BLOB o di un TEXT o presenza di un campo pi\u00f9 grande di 512 byte) come menzionato all'inizio di un <a href=\".\/url.php?url=https%3A%2F%2Fwww.facebook.com%2Fnote.php%3Fnote_id%3D10150111255065841%26comments\" target=\"_blank\" rel=\"noopener noreferrer\">Articolo del Pythian Group<\/a>","justification":"Il 6% di tutte le tabelle temporanee verr\u00e0 scritto su disco, questo valore dovrebbe essere inferiore al 25%","id":"Percentage of temp tables on disk"},{"name":"Dimensione del key buffer MyISAM","formula":"key_buffer_size","test":"value == 0","issue":"Key buffer non inizializzato. Nessun indice MyISAM verr\u00e0 memorizzato in cache.","recommendation":"Impostare <a href=\"server_variables.php?filter=key_buffer_size\">key_buffer_size<\/a> a seconda della dimensione dei vostri indici MyISAM. 64M \u00e8 un buon inizio.","justification":"key_buffer_size \u00e8 uguale a 0","id":"MyISAM key buffer size"},{"name":"Frequenza di tabelle aperte","formula":"Opened_tables \/ Uptime","test":"value*60*60 > 10","issue":"La frequenza di apertura di tabelle \u00e8 alta.","recommendation":"Aprire tabelle richiede I\/O su disco che \u00e8 un'operazione costosa. Aumentare <a href=\"server_variables.php?filter=table_open_cache\">table_open_cache<\/a> potrebbe evitarlo.","justification":"Tasso di apertura delle tabelle: 12,94 al giorno, questo valore dovrebbe essere inferiore a 10 all'ora","id":"Rate of table open"},{"name":"Limite percentuale di file aperti utilizzati","formula":"Open_files \/ open_files_limit * 100","test":"value > 85","issue":"Il numero di file aperti si sta avvicinando al massimo numero di file aperti. Potrebbe ricevere un errore \"Troppi file aperti\".","recommendation":"Valutate se incrementare <a href=\"server_variables.php?filter=open_files_limit\">open_files_limit<\/a> e controllate il log degli errori quando riavviate dopo avere cambiato <a href=\"server_variables.php?filter=open_files_limit\">open_files_limit<\/a>.","justification":"Il numero di file aperti \u00e8 al 1% del limite. Dovrebbe essere al di sotto dell'85%","id":"Percentage of used open files limit"},{"name":"Frequenza di file aperti","formula":"Open_files \/ Uptime","test":"value * 60 * 60 > 5","issue":"La frequenza di apertura di file \u00e8 alta.","recommendation":"Valutate se incrementare <a href=\"server_variables.php?filter=open_files_limit\">open_files_limit<\/a> e controllate il log degli errori quando riavviate dopo avere cambiato <a href=\"server_variables.php?filter=open_files_limit\">open_files_limit<\/a>.","justification":"Tasso di file aperti: 5,74 al giorno, questo valore dovrebbe essere inferiore a 5 all'ora","id":"Rate of open files"},{"name":"% di lock immediati delle tabelle","precondition":"Table_locks_waited + Table_locks_immediate > 0","formula":"Table_locks_immediate \/ (Table_locks_waited + Table_locks_immediate) * 100","test":"value < 95","issue":"Troppi lock delle tabelle non sono stati assegnati immediatamente.","recommendation":"Ottimizzate le query e\/o utilizzate InnoDB per ridurre i ritardi dovuti al lock.","justification":"Lock di tabelle immediato: 100%, questo valore dovrebbe essere al di sopra del 95%","id":"Immediate table locks %"},{"name":"Tasso di lock delle tabelle in attesa","formula":"Table_locks_waited \/ Uptime","test":"value * 60 * 60 > 1","issue":"Troppi lock delle tabelle non sono stati assegnati immediatamente.","recommendation":"Ottimizzate le query e\/o utilizzate InnoDB per ridurre i ritardi dovuti al lock.","justification":"Tasso di lock di tabelle in attesa: <0,01 al giorno, questo valore dovrebbe essere inferiore a 1 all'ora","id":"Table lock wait rate"},{"name":"Cache del thread","formula":"thread_cache_size","test":"value < 1","issue":"La chace dei thread \u00e8 disabilitata: questo causa un overhead maggiore delle nuove connessioni verso MySQL.","recommendation":"Abilitate la cache dei thread impostando <a href=\"server_variables.php?filter=thread_cache_size\">thread_cache_size<\/a> > 0.","justification":"La cache dei thread \u00e8 impostata a 0","id":"Thread cache"},{"name":"Percentuale hit nella cache del thread","precondition":"thread_cache_size > 0","formula":"100 - Threads_created \/ Connections","test":"value < 80","issue":"La cache dei thread non \u00e8 efficiente.","recommendation":"Aumenta <a href=\"server_variables.php?filter=thread_cache_size\">thread_cache_size<\/a>.","justification":"Frequenza hit nella cache dei thread: 100%, questo valore dovrebbe essere superiore all'80%","id":"Thread cache hit rate %"},{"name":"Thread che sono lenti da avviarsi","precondition":"slow_launch_time > 0","formula":"Slow_launch_threads","test":"value > 0","issue":"Ci sono troppi thread lenti da avviare.","recommendation":"Questo di solito succede quando si verifica un sovraccarico del sistema anche per operazioni piuttosto semplici. Sarebbe opportuno monitorare attentamente il carico del sistema.","justification":"0 thread hanno richiesto pi\u00f9 di 2 secondi per partire, dovrebbe essere 0","id":"Threads that are slow to launch"},{"name":"Tempo di avvio lento","formula":"slow_launch_time","test":"value > 2","issue":"Il valore di Slow_launch_time \u00e8 superiore a 2 secondi.","recommendation":"Impostate <a href=\"server_variables.php?filter=slow_launch_time\">slow_launch_time<\/a> a 1 o 2 secondi per contare correttamente i thread che sono lenti ad avviarsi.","justification":"slow_launch_time \u00e9 impostato a 2","id":"Slow launch time"},{"name":"Percentuale di connessioni utilizzate","formula":"Max_used_connections \/ max_connections * 100","test":"value > 80","issue":"Il numero massimo di connessioni utilizzate si sta avvicinando al valore {max_connections}.","recommendation":"Aumentate <a href=\"server_variables.php?filter=max_connections\">max_connections<\/a>, o diminuite <a href=\"server_variables.php?filter=wait_timeout\">wait_timeout<\/a> affinch\u00e9 le connessioni che non chiudono i database handler in modo corretto possano essere cancellate al pi\u00f9 presto. Assicuratevi che il codice chiuda i database handler in modo corretto.","justification":"Max_used_connections \u00e8 al 20% di max_connections, dovrebbe essere inferiore all'80%","id":"Percentage of used connections"},{"name":"Percentuale di connessioni abortite","formula":"Aborted_connects \/ Connections * 100","test":"value > 1","issue":"Sono state interrotte troppe connessioni.","recommendation":"Le connessioni vengono di solito interrotte quando non possono essere autorizzate. <a href=\".\/url.php?url=https%3A%2F%2Fwww.percona.com%2Fblog%2F2008%2F08%2F23%2Fhow-to-track-down-the-source-of-aborted_connects%2F\" target=\"_blank\" rel=\"noopener noreferrer\">Questo articolo<\/a> essere d'aiuto per tracciare il sorgente.","justification":"Il 0% di tutte le connessioni \u00e8 stato interrotto. Questo valore dovrebbe essere inferiore all'1%","id":"Percentage of aborted connections"},{"name":"Frequenza di connessioni abortite","formula":"Aborted_connects \/ Uptime","test":"value * 60 * 60 > 1","issue":"Sono state interrotte troppe connessioni.","recommendation":"Le connessioni vengono di solito interrotte quando non possono essere autorizzate. <a href=\".\/url.php?url=https%3A%2F%2Fwww.percona.com%2Fblog%2F2008%2F08%2F23%2Fhow-to-track-down-the-source-of-aborted_connects%2F\" target=\"_blank\" rel=\"noopener noreferrer\">Questo articolo<\/a> essere d'aiuto per tracciare il sorgente.","justification":"Il tasso di connessioni interrotte \u00e8 <0,01 al giorno, questo valore dovrebbe essere inferiore a 1 all'ora","id":"Rate of aborted connections"},{"name":"Percentuale di client abortiti","formula":"Aborted_clients \/ Connections * 100","test":"value > 2","issue":"Sono state interrotti troppi client.","recommendation":"Le connessioni dei client sono solitamente terminate quando questi non terminano correttamente le loro connessioni a MySQL. Questo potrebbe essere causato da problemi di rete o da codice che non termina correttamente le connessioni. Controllare rete e codice.","justification":"Il server termina il 0% delle connessioni dei client. Questo valore dovrebbe essere inferiore al 2%","id":"Percentage of aborted clients"},{"name":"Frequenza di connessioni client terminate","formula":"Aborted_clients \/ Uptime","test":"value * 60 * 60 > 1","issue":"Sono state interrotti troppi client.","recommendation":"Le connessioni dei client sono solitamente terminate quando questi non terminano correttamente le loro connessioni a MySQL. Questo potrebbe essere causato da problemi di rete o da codice che non termina correttamente le connessioni. Controllare rete e codice.","justification":"La frequenza di interruzione di connessioni dei client \u00e8 <0,01 al giorno, questo valore dovrebbe essere inferiore ad 1 per ora","id":"Rate of aborted clients"},{"name":"Dimensione log InnoDB","precondition":"innodb_buffer_pool_size > 0","formula":"(innodb_log_file_size * innodb_log_files_in_group)\/ innodb_buffer_pool_size * 100","test":"value < 20 && innodb_log_file_size \/ (1024 * 1024) < 256","issue":"La dimensione del file di log InnoDB non \u00e8 appropriata, in relazione alla dimensione del buffer pool InnoDB.","recommendation":"Si dovrebbe impostare <a href=\"server_variables.php?filter=innodb_log_file_size\">innodb_log_file_size<\/a> al 25% di <a href=\"server_variables.php?filter=innodb_buffer_pool_size\">innodb_buffer_pool_size<\/a>, soprattutto in sistemi che processano numerose scritture in tabelle InnoDB. Tuttavia pi\u00f9 questo valore \u00e8 alto maggiore sar\u00e0 il tempo necessario per recuperare i database in seguito a crash, quindi sarebbe opportuno non andare molto oltre 256 MiB. \u00c8 necessario tener conto che non \u00e8 possibile una veloce modifica di questo parametro. Occorre fermare il server, rimuovere i file log InnoDB, impostare il nuovo valore in my.cnf, avviare il server, quindi assicurarsi dell'assenza di errori nei log. Vedi anche <a href=\".\/url.php?url=https%3A%2F%2Fmysqldatabaseadministration.blogspot.com%2F2007%2F01%2Fincrease-innodblogfilesize-proper-way.html\" target=\"_blank\" rel=\"noopener noreferrer\">questo articolo di blog<\/a>","justification":"La dimensione del log InnoDB \u00e8 63% in relazione alla dimensione del buffer pool InnoDB, dovrebbe essere non inferiore al 20%","id":"InnoDB log size"},{"name":"Inserimenti MyISAM contemporanei","formula":"concurrent_insert","test":"value === 0 || value === 'NEVER'","issue":"Abilita {concurrent_insert} impostandolo a 1","recommendation":"Impostare <a href=\"server_variables.php?filter=concurrent_insert\">concurrent_insert<\/a> a 1 riduce i conflitti tra letture e scritture su una data tabella. V. anche la <a href=\".\/url.php?url=https%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fconcurrent-inserts.html\" target=\"_blank\" rel=\"noopener noreferrer\">Documentazione MySQL<\/a>","justification":"concurrent_insert \u00e8 impostato a 0","id":"MyISAM concurrent inserts"}],"unchecked":[{"name":"Slow query logging","precondition":"PMA_MYSQL_INT_VERSION < 50600","formula":"log_slow_queries","test":"value == 'OFF'","issue":"The slow query log is disabled.","recommendation":"Enable slow query logging by setting {log_slow_queries} to 'ON'. This will help troubleshooting badly performing queries.","justification":"log_slow_queries is set to 'OFF'"},{"name":"Percentage of MyISAM key buffer used","precondition":"key_buffer_size > 0 && !fired('Max % MyISAM key buffer ever used')","formula":"( 1 - Key_blocks_unused * key_cache_block_size \/ key_buffer_size) * 100","test":"value < 95","issue":"MyISAM key buffer (index cache) % used is low.","recommendation":"You may need to decrease the size of {key_buffer_size}, re-examine your tables to see if indexes have been removed, or examine queries and expectations about what indexes are being used.","justification":"% MyISAM key buffer used: %s%, this value should be above 95% | round(value,1)"},{"name":"Percentage of index reads from memory","precondition":"Key_read_requests > 0","formula":"100 - (Key_reads \/ Key_read_requests * 100)","test":"value < 95","issue":"The % of indexes that use the MyISAM key buffer is low.","recommendation":"You may need to increase {key_buffer_size}.","justification":"Index reads from memory: %s%, this value should be above 95% | round(value,1)"},{"name":"Is InnoDB disabled?","precondition":"PMA_MYSQL_INT_VERSION < 50600","formula":"have_innodb","test":"value != \"YES\"","issue":"You do not have InnoDB enabled.","recommendation":"InnoDB is usually the better choice for table engines.","justification":"have_innodb is set to 'value'"},{"name":"Max InnoDB log size","precondition":"innodb_buffer_pool_size > 0 && innodb_log_file_size \/ innodb_buffer_pool_size * 100 < 30","formula":"innodb_log_file_size \/ (1024 * 1024)","test":"value > 256","issue":"The InnoDB log file size is inadequately large.","recommendation":"It is usually sufficient to set {innodb_log_file_size} to 25% of the size of {innodb_buffer_pool_size}. A very big {innodb_log_file_size} slows down the recovery time after a database crash considerably. See also <a href=\"https:\/\/www.percona.com\/blog\/2006\/07\/03\/choosing-proper-innodb_log_file_size\/\">this Article<\/a>. You need to shutdown the server, remove the InnoDB log files, set the new value in my.cnf, start the server, then check the error logs if everything went fine. See also <a href=\"https:\/\/mysqldatabaseadministration.blogspot.com\/2007\/01\/increase-innodblogfilesize-proper-way.html\">this blog entry<\/a>","justification":"Your absolute InnoDB log size is %s MiB | round(value,1)"},{"name":"InnoDB buffer pool size","precondition":"system_memory > 0","formula":"innodb_buffer_pool_size \/ system_memory * 100","test":"value < 60","issue":"Your InnoDB buffer pool is fairly small.","recommendation":"The InnoDB buffer pool has a profound impact on performance for InnoDB tables. Assign all your remaining memory to this buffer. For database servers that use solely InnoDB as storage engine and have no other services (e.g. a web server) running, you may set this as high as 80% of your available memory. If that is not the case, you need to carefully assess the memory consumption of your other services and non-InnoDB-Tables and set this variable accordingly. If it is set too high, your system will start swapping, which decreases performance significantly. See also <a href=\"https:\/\/www.percona.com\/blog\/2007\/11\/03\/choosing-innodb_buffer_pool_size\/\">this article<\/a>","justification":"You are currently using %s% of your memory for the InnoDB buffer pool. This rule fires if you are assigning less than 60%, however this might be perfectly adequate for your system if you don't have much InnoDB tables or other services running on the same machine. | value"},{"name":"Query cache efficiency (%)","precondition":"Com_select + Qcache_hits > 0 && !fired('Query cache disabled')","formula":"Qcache_hits \/ (Com_select + Qcache_hits) * 100","test":"value < 20","issue":"Query cache not running efficiently, it has a low hit rate.","recommendation":"Consider increasing {query_cache_limit}.","justification":"The current query cache hit rate of %s% is below 20% | round(value,1)"},{"name":"Query Cache usage","precondition":"!fired('Query cache disabled')","formula":"100 - Qcache_free_memory \/ query_cache_size * 100","test":"value < 80","issue":"Less than 80% of the query cache is being utilized.","recommendation":"This might be caused by {query_cache_limit} being too low. Flushing the query cache might help as well.","justification":"The current ratio of free query cache memory to total query cache size is %s%. It should be above 80% | round(value,1)"},{"name":"Query cache fragmentation","precondition":"!fired('Query cache disabled')","formula":"Qcache_free_blocks \/ (Qcache_total_blocks \/ 2) * 100","test":"value > 20","issue":"The query cache is considerably fragmented.","recommendation":"Severe fragmentation is likely to (further) increase Qcache_lowmem_prunes. This might be caused by many Query cache low memory prunes due to {query_cache_size} being too small. For a immediate but short lived fix you can flush the query cache (might lock the query cache for a long time). Carefully adjusting {query_cache_min_res_unit} to a lower value might help too, e.g. you can set it to the average size of your queries in the cache using this formula: (query_cache_size - qcache_free_memory) \/ qcache_queries_in_cache","justification":"The cache is currently fragmented by %s% , with 100% fragmentation meaning that the query cache is an alternating pattern of free and used blocks. This value should be below 20%. | round(value,1)"},{"name":"Query cache low memory prunes","precondition":"Qcache_inserts > 0 && !fired('Query cache disabled')","formula":"Qcache_lowmem_prunes \/ Qcache_inserts * 100","test":"value > 0.1","issue":"Cached queries are removed due to low query cache memory from the query cache.","recommendation":"You might want to increase {query_cache_size}, however keep in mind that the overhead of maintaining the cache is likely to increase with its size, so do this in small increments and monitor the results.","justification":"The ratio of removed queries to inserted queries is %s%. The lower this value is, the better (This rules firing limit: 0.1%) | round(value,1)"},{"name":"Query cache max size","precondition":"!fired('Query cache disabled')","formula":"query_cache_size","test":"value > 1024 * 1024 * 128","issue":"The query cache size is above 128 MiB. Big query caches may cause significant overhead that is required to maintain the cache.","recommendation":"Depending on your environment, it might be performance increasing to reduce this value.","justification":"Current query cache size: %s | ADVISOR_formatByteDown(value, 2, 2)"},{"name":"Query cache min result size","precondition":"!fired('Query cache disabled')","formula":"query_cache_limit","test":"value == 1024*1024","issue":"The max size of the result set in the query cache is the default of 1 MiB.","recommendation":"Changing {query_cache_limit} (usually by increasing) may increase efficiency. This variable determines the maximum size a query result may have to be inserted into the query cache. If there are many query results above 1 MiB that are well cacheable (many reads, little writes) then increasing {query_cache_limit} will increase efficiency. Whereas in the case of many query results being above 1 MiB that are not very well cacheable (often invalidated due to table updates) increasing {query_cache_limit} might reduce efficiency.","justification":"query_cache_limit is set to 1 MiB"}],"errors":[]}}