Configurazione MySQL

di il
4 risposte

Configurazione MySQL

Salve ragazzi,
a distanza di 10 giorni circa dalla messa in moto di un VPS, mi sono ritrovato di colpo con il MySQL che utilizzava una percentuale spropositata della CPU..
Leggendo su internet ho notato che è capitato a molti e, venendo a conoscenza del significato di molte variabili di MySQL, ho capito che non è semplice configurare il MySQL ad hoc..

Così ho deciso di avvalermi dell'aiuto di MySQL Tuner e di Tuning-Primer, cercando di trovare un punto di incontro tra questi due programmi, sono arrivato a questa configurazione:
join_buffer_size = 4M
key_buffer_size = 384M
max_allowed_packet = 2M
thread_cache_size = 32M

myisam-recover-options  = BACKUP

query_cache_limit	= 50K
query_cache_size = 0
query_cache_type = 0

log_error = /var/log/mysql/error.log

expire_logs_days	= 10
max_binlog_size   = 100M
innodb_file_per_table = 1
myisam_sort_buffer_size = 64M
read_rnd_buffer_size = 32M
read_buffer_size = 4M
sort_buffer_size = 1M
table_open_cache = 1000
table_definition_cache = 1000
max_connections = 100

innodb_log_file_size = 16M

skip-name-resolve

tmp_table_size = 512M
max_heap_table_size = 512M
MySQL Tuner tuttavia continua a chiedermi di aumentare il join_buffer_size, ma a quanto vedo dall'analisi, i valori sono già alti..!
[--] Physical Memory : 7.8G
[--] Max MySQL memory : 5.0G
[--] Other process memory: 1.9G
[--] Total buffers: 1.0G global + 41.2M per thread (100 max threads)
Il VPS ha queste caratteristiche:
Processori Intel® Xeon®: Intel® Xeon® E5-2660 v2 e Intel® Xeon® E5-2683 v3 (4 processori)
RAM 8Gb ed SSD
Qualche anima pia che mi da qualche consiglio..?

4 Risposte

  • Re: Configurazione MySQL

    Sei molto, ma proprio tanto, fuori strada. non mi è chiaro cosa significhi, per te, percentuale spropositata CPU.
    anche modificare a casaccio otterrà quasi certamente un effetto negativo, anzichè positivo.

    se usi innodb, allora la primissima cosa, la più importante è innodb_buffer_pool_size.
    poi innodb_log_file_size (più è grande, più tempo ci vuole in avvio da crash)
    
    innodb_file_per_table = 1
    skip-name-resolve
    sono essenzialmente le uniche cose giuste che hai messo.
  • Re: Configurazione MySQL

    +m2+ ha scritto:


    Sei molto, ma proprio tanto, fuori strada. non mi è chiaro cosa significhi, per te, percentuale spropositata CPU.
    anche modificare a casaccio otterrà quasi certamente un effetto negativo, anzichè positivo.

    se usi innodb, allora la primissima cosa, la più importante è innodb_buffer_pool_size.
    poi innodb_log_file_size (più è grande, più tempo ci vuole in avvio da crash)
    
    innodb_file_per_table = 1
    skip-name-resolve
    sono essenzialmente le uniche cose giuste che hai messo.
    Io non ho idea delle risorse di cui necessitano i DB ed InnoDB in base alle visite simultanee.. Ho semplicemente seguito i consigli di questi 2 tuner, i risultati sono migliorari rispetto all'impostazione di default, ma mi rendo conto che rimane una configurazione pessima dato il comunque eleveto utilizzo di CPU..
    Si avvicina al 100%..!

    Come faccio a fare una buona configurazione?
    innodb_log_file_size non ho capito se devo aumentarlo o diminuirlo
    innodb_buffer_pool_size a quanto dovrei impostarlo?

    Per ora l'ho impostato cosi:
    
    innodb_file_per_table = 1
    innodb_log_file_size = 512M
    innodb_buffer_pool_size = 4G
    innodb_buffer_pool_instances = 4
  • Re: Configurazione MySQL

    Bhè inizialmente devi capire qual'è il problema.
    attiva lo slow log tanto per cominciare.
    secondariamente guarda le statistiche che ci sono (se non usi mariadb saranno poche)
  • Re: Configurazione MySQL

    +m2+ ha scritto:


    Bhè inizialmente devi capire qual'è il problema.
    attiva lo slow log tanto per cominciare.
    secondariamente guarda le statistiche che ci sono (se non usi mariadb saranno poche)
    Allora, inizio con il confermarti che i database (6) non sono MariaDB, sono tutti degli InnoDB..
    Lo slow log è già attivo, ho risolto il problema aggiungendo l'indice (inutili per il codice PHP/jQuery) a 3 tabelle ed ora lo slow log non mi segna più nessuna query.
Devi accedere o registrarti per scrivere nel forum
4 risposte