OVH Community, your new community space.

Conf MySql


Acidflame
22.12.2011, 15.23
Allora come vedi ti dice che o abbassi l'utilizzo di memoria da parte del mysql che è troppo alto o aggiungi altra ram, ma nel tuo caso devi abbassare l'utilizzo della memoria da parte el mysql.

Seguendo le istruzioni sotto tipo query_cachesize(>256M) puoi sistemarti i vari valori del database. Quelle che ti escono sotto in effetti sono le variabili da sistemare per rendere il mysql più performante

SZ1
22.12.2011, 15.19
una sola curiosità: i controlli che restituiscono [--] non sono stati fatti o non sono ne Ok ne pericolosi?!?

SZ1
22.12.2011, 15.11
ecco qua il risultato fornito da MySQL Tuner

>> MySQLTuner 1.2.0 - Major Hayden
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.18-cll
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 128M (Tables: 402)
[--] Data in InnoDB tables: 2G (Tables: 918)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[--] Data in MEMORY tables: 0B (Tables: 2)
[!!] Total fragmented tables: 920

-------- Security Recommendations -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 1d 6h 43m 3s (6M q [56.119 qps], 76K conn, TX: 19B, RX: 3B)
[--] Reads / Writes: 72% / 28%
[--] Total buffers: 8.8G global + 32.4M per thread (500 max threads)
[!!] Maximum possible memory usage: 24.6G (104% of installed RAM)
[OK] Slow queries: 0% (1K/6M)
[OK] Highest usage of available connections: 11% (58/500)
[OK] Key buffer size / total MyISAM indexes: 512.0M/47.7M
[OK] Key buffer hit rate: 99.9% (37M cached / 32K reads)
[OK] Query cache efficiency: 68.9% (3M cached / 4M selects)
[!!] Query cache prunes per day: 107815
[OK] Sorts requiring temporary tables: 0% (168 temp sorts / 521K sorts)
[!!] Joins performed without indexes: 8536
[OK] Temporary tables created on disk: 15% (117K on disk / 770K total)
[OK] Thread cache hit rate: 98% (829 created / 76K connections)
[!!] Table cache hit rate: 1% (509 open / 43K opened)
[OK] Open file limit used: 0% (9/2K)
[OK] Table locks acquired immediately: 99% (7M immediate / 7M locks)
[OK] InnoDB data size / buffer pool: 2.7G/8.0G

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
Reduce your overall MySQL memory footprint for system stability
Enable the slow query log to troubleshoot bad queries
Increasing the query_cache size over 128M may reduce performance
Adjust your join queries to always utilize indexes
Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
*** MySQL's maximum memory usage is dangerously high ***
*** Add RAM before increasing MySQL buffer variables ***
query_cache_size (> 256M) [see warning above]
join_buffer_size (> 128.0K, or always use indexes with joins)
table_cache (> 512)

SZ1
21.12.2011, 17.24
grazie a tutti, installo subito mysqltuner, lo lascio andare per qualche gg (visto il natale di mezzo) e la settimana prox controllo che dice e ottimizzo...
Aggiornerò il post con le segnalazioni dello script e gli interventi effettuati.
Auguri a tutti e grazie ancora. :-)

Acidflame
21.12.2011, 15.42
Io direi prima di cambiare di far trascorrere le 24 ore e poi controllare con mysql tuner che tanto dice cosa va e cosa non va bene. Ah una cosa per qualsiasi modifica dopo salvato il file my.cnf ricordati di inserire

service mysql restart

raffo
21.12.2011, 15.28
Puoi usare un template di mysql per server potenti, cerca il file my-huge.cnf.gz nel tuo server e decomprimilo e usalo.
Dovrebbe stare su /usr/share/doc/mysql-server-5.1/examples/
se non lo trovi cercalo con il comando:
find /usr/share/doc/ -name my-huge.cnf.gz


Cio che devi fare e':
aumentare i thread di MySQL che di solito vanno insieme al numero di CPU
thread_concurrency = 8

Aumentare il buffering e la cache:
query_cache_size = 128M
key_buffer = 720M
max_allowed_packet = 16M
table_cache = 3072
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 16

E poi con mysqltuner.pl vedi se tutti i parametri vanno bene perche' se un valore e' troppo alto o troppo basso anche gli altri valori ne risentono, con mysql tutto e' annesso.
mysqltuner.pl per darti delle buone statistiche devi almeno usare il mysql per 24 ore allora ti potra dire se c'e' poca cache o se i vari buffers sono errati in base alla cache.

Acidflame
21.12.2011, 14.17
Per ottimizzare il db puoi utilizzare un ottimo script che è
mysqltuner.
Lo scarichi da qui

Codice:
chmod 777 mysqltuner.pl
./mysqltuner.pl
Ti farà l'analisi del mysql indicandoti le cose da cambiare o aggiungere per ottimizzarlo.

SZ1
21.12.2011, 08.36
Vi posto la configurazione creata per il file config-db dopo aver letto decine di siti internet che parlano di ottimizzazione MySQL:

************************************************** ***
[mysqld]
local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1
bind-address=127.0.0.1
sort_buffer_size=8M
read_buffer_size=8M
key_buffer=512M
table_open_cache=512
max_allowed_packet=8M
read_rnd_buffer_size=16M
myisam_sort_buffer_size=128M
thread_cache_size=16
query_cache_type=1
query_cache_size=256M
thread_concurrency=16
max_connections=500
wait_timeout=120
tmp_table_size=64M
max_heap_table_size=64M

innodb_buffer_pool_size=8G
innodb_thread_concurrency=16
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50

[myisamchk]
read_buffer=32M
write_buffer=32M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

************************************************** ***

Il server è uno di questi
http://www.ovh.it/server_dedicati/mg_ssd_max.xml
che contiene, oltre al db, anche il sito web.

Secondo voi c'è qualcosa di sbagliato o è possibile ottimizzare meglio l'uso di mysql?
Grazie.