Jump to content

Como otimizar o MySQL


Jesmarcelo

Recommended Posts

Essa questão é tão difícil quanto otimizar o apache, pois depende de muitos fatores. Mas procura dentro da pasta /usr/share/mysql, nela tem vários arquivos .cnf que vc pode aplicar no /ect/my.cnf

Agora uma coisa que vc pode fazer, edita o PHP.ini do servidor na linha:

mysql.allow_persistent = On
Colocando como Off
mysql.allow_persistent = Off[/code]

Link to comment
Share on other sites

A conexão persistente fica ativa mesmo depois que um script para de rodar, e na próxima vez que precisar acessar a base a conexão já está aberta, porem isso consome recursos, e essas linhas acima desabilitam a conexão persistente.

Link to comment
Share on other sites

Bom, vou passar aqui 2 scripts que eu usei pra optimizar minha configuração do MySQL e também a minha configuração atual.

Vale lembrar que com essa configuração o MySQL pode alocar até 6.8GB de RAM e como meu site só usa MyISAM, eu desativei todos as outras engines.

Caso você queira ativar as outras engines, é só remover as linhas:

skip-innodb

skip-bdb


[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql


safe-show-database

old-passwords = 1

max_connections = 256

key_buffer_size = 1024M

myisam_sort_buffer_size = 64M

join_buffer_size = 4M

read_buffer_size = 6M

sort_buffer_size = 2M

table_cache = 4000

thread_cache_size = 256

wait_timeout = 20

connect_timeout = 10

tmp_table_size = 1048M

max_heap_table_size = 512M

max_allowed_packet = 64M

net_buffer_length = 16384

max_connect_errors = 10

thread_concurrency = 16

concurrent_insert = 2

table_lock_wait_timeout = 30

read_rnd_buffer_size = 786432

bulk_insert_buffer_size = 4M

query_cache_limit = 8M

query_cache_size = 2048M

query_cache_type = 1

query_prealloc_size = 262144

query_alloc_block_size = 65536

query_cache_min_res_unit = 3072

transaction_alloc_block_size = 8192

transaction_prealloc_size = 4096

max_write_lock_count = 16

long_query_time = 5

interactive_timeout = 30

skip-name-resolve

skip-locking

skip-innodb

skip-bdb


[mysqld_safe]

open_files_limit = 25182


log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid


[mysqldump]

quick

max_allowed_packet = 16M


[myisamchk]

key_buffer = 384M

sort_buffer = 384M

read_buffer = 256M

write_buffer = 256M

Essa configuração ajudou muito a aliviar o load do meu servidor. (Dual Xeon 5520)

Hoje meu servidor ta com load de no máximo 5.2 com 2500 pessoas online no site ;)

Claaaaaro que essa configuração não faz milagres também né... muitos "SELECT" ficam no Memcached que eu rodo em 3 servidores :P

Link para os scripts:

http://anitu.be/7J

;)

Edited by Maunose
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Do you agree with our terms?