Estou executando o mesmo tipo de servidor Mysql no EC2. Não toque em /etc/mysql/my.cnf, mas coloque os arquivos de configuração em /etc/mysql/conf.d/ Isso permitirá que você gerencie suas alterações para mecanismos específicos e forneça aos administradores depois de dicas adicionais sobre como as coisas foram configuradas . Além disso, facilita o backup de todas as alterações feitas e as acompanha.
/etc/mysql/conf.d/innodb_mysql.cnf
[mysqld]
# innodb settings
innodb_additional_mem_pool_size = 12M
innodb_buffer_pool_size = 2G
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 180
innodb_log_buffer_size = 16M
innodb_open_files = 512
innodb_thread_concurrency = 0
A maioria dessas configurações é bem padrão e você deve definitivamente consultar Recomendações de Percona . Você poderia chegar a 6G no seu sistema, mas eu começaria pequeno. Também com mesas myisam eu provavelmente iria parar em 4G. Eu não tocaria nos tamanhos dos arquivos de log innodb, há muito pouco ganho a ser obtido. Aumentar o log_buffer_size e o addition_mem_pool também tem muito pouco retorno após um bump inicial.
Além disso, as configurações acima são para melhor desempenho e não para consistência de transação. Supondo que você esteja executando apenas um aplicativo da Web, o que precede é bom, mas não para um sistema bancário.
/etc/mysql/conf.d/general_mysql.cnf
[mysqld]
# general settings
key_buffer = 384M
key_buffer é o mais útil para myisam e Mysql em geral O padrão é apenas 16M, que é muito pequeno em uma máquina de 8GB. Novamente eu começaria com um bom salto e veria se você melhora. Tenha em mente que buffers myisam e buffers innodb não são compartilhados, então eles precisam ser coletivamente menores que a quantidade de RAM que você tem. Mais tarde, você pode procurar classificar e ler buffers também.