MySQL tuning: come risparmiare cicli di CPU

Ultimamente, a causa della rapida crescita di Annunci.net, il database server di InnovaNet.it è stato sottoposto a qualche intervento di MySQL tuning che ha permesso una riduzione del carico di sistema del 60% circa.
Molti blog inglesi e americani sono strapieni di tutorial e How To dedicati all’argomento mentre in italiano i contenuti scarseggiano :( .

La configurazione di default di MySQL è adatta esclusivamente per siti a basso traffico con query semplici e database poco popolati.
Come per magia (!!), aggiungendo le seguenti righe al file my.cnf e riavviando MySQL:

set-variable = table_cache=1000
set-variable = wait_timeout=15
set-variable = interactive_timeout=15
set-variable = max_connections=500
set-variable = thread_cache_size=40
set-variable = tmp_table_size=200000000
set-variable = record_buffer=300000

query_cache_limit = 3048576
query_cache_size = 100000000
query_cache_type = 1

guardate un pò dal grafico di mrtg cosa sono riuscito ad ottenere:


carico di sistema

Come potete notare dalla metà di Aprile in poi (data del tuning) il carico è sceso da una media di 2.30 a una media di 1.15. I valori di questi parametri sono ottimizzati per il nostro server, modificateli opportunamente a seconda delle vostre esigenze.

Non male direi, visto che una semplice ottimizzazione può far risparmiare l’uso di una macchina aggiuntiva e tutti i costi di gestione e mantenimento.

Un commento per “MySQL tuning: come risparmiare cicli di CPU”

  1. Grazie per i consigli. Per il mio database server è stato sufficiente modificare il parametro

    set-variable = thread_cache_size=40

    è il carico della CPU si è notevolmente ridotti.

Lascia un commento

Piero Bacarella © 2007 - Some Rights Reserved