Domanda

L'installazione di un server MySQL è abbastanza facile. Tuttavia, dopo l'installazione, la configurazione del server è un compito importante per un DBA.

Avere 2GB di RAM e 250 GB di spazio su disco, come devo assistente sintonia MySQL in modo che si comporta bene?

Ci dovrebbe essere anche una corretta configurazione del motore InnoDB.

È stato utile?

Soluzione

Ecco alcune delle mie raccomandazioni per InnoDB. Nella mia esperienza, la dimensione del pool di buffer è la più importante perché più dati che si può tenere in cache, il meno tempo il sistema spenderà utilizzando IO disco.

http://dev.mysql.com/doc/refman/5.5 /en/innodb-buffer-pool.html Questo è il pool di buffer, in cui vengono memorizzati i dati e le index

innodb_buffer_pool_size=(In Mb, 80% of available RAM), per 2GB, vorrei mettere 1536.

Controlla con attenzione il vostro sistema ed essere pronti a ridurre questa variabile se si inizia a vedere lo scambio.

http://dev.mysql.com/doc/refman/5.1 /en/innodb-parameters.html#sysvar_innodb_additional_mem_pool_size Questo è dove i metadati è memorizzato. Se tu avessi un sacco di tavoli, sarebbe utile aumentare questo.

innodb_additional_mem_pool_size=16M

http://dev.mysql.com/doc/refman/5.1 /en/innodb-parameters.html#sysvar_innodb_data_file_path Qui è possibile definire la posizione del file ibdata. Se si può mettere il file ibdata su un disco separato che utilizza un controller separato, si riduce contesa. State attenti con questa opzione. Assicurarsi di leggere su questa variabile prima di utilizzarla. Se le vostre esigenze di file ibdata più di 29G, MySQL si fermeranno qualunque sia il suo fare e aspettare di aggiungere spazio.

innodb_data_file_path = ibdata1:128M:autoextend:max:29G

Questo riesce in quello che è aumentata con incrementi il ??file ibdata. Quindi, se si mette davvero un piccolo numero come 10 MB, ciò significherebbe che InnoDB avrebbe speso un sacco di tempo, aumentando il suo file ibdata se hai avuto un sacco di inserti.

innodb_autoextend_increment = 128M

dove mettere i registri delle transazioni. Se si può mettere i registri delle transazioni su un disco diverso con un controller separato, questo sarà anche ridurre la contesa

innodb_log_group_home_dir = /tlog/

Qual è la dimensione dei file di registro

innodb_log_file_size = 500M

25% della dimensione del pool di buffer, consente transazioni di grandi dimensioni per l'esecuzione senza la necessità di scrivere sul disco

innodb_log_buffer_size = 384M

Ho anche definire dove la directory temp dovrebbe andare. Definisce in cui MySQL crea i file temporanei. Ancora un altro modo per ridurre la contesa.

Io di solito lascia spazio sufficiente per consentire reindicizzazione del tavolo più grande sul server.

tmpdir=/opt/tmp/

E un log degli errori è utile nel caso in cui qualcosa va storto ed è necessario risolvere i problemi di.

log-error=/var/log/mysql.err

Inoltre, se si dispone di più di 4 CPU, queste variabili può essere aumentata innodb_thread_concurrency = 8 innodb_file_io_threads = 4

Questo non ha nulla a che fare con InnoDB. Ci sono altre variabili si può giocare con che non hanno nulla a che fare con InnoDB. Ho aggiunte in fondo, ma sono stati presi direttamente da un server che uso per il test. Evitare semplicemente copiando e incollandoli. la documentazione di Reading MySQL basato sulla versione vostro usando è il modo migliore per fare le scelte giuste.

# Fine Tunning
key_buffer              = 512M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
join_buffer_size        = 64M
sort_buffer_size        = 16M
myisam_max_sort_file_size = 1024M
tmp_table_size = 256M
max_heap_table_size = 257M
myisam_sort_buffer_size=1024M

table_cache            = 1000
thread_concurrency     = 8
# * Query Cache Configuration
#
query_cache_limit       = 16M
query_cache_size        = 16M


skip-name-resolve
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top