Configurações específicas do apache + mysql para um site leve

1

Eu tenho um pequeno site com um Joomla e um Moodle configurado. Parece que ambos são muito lentos. O servidor (CentOS release 5.5 (Final)) é um servidor dedicado virtual com cerca de 2GB de memória RAM. Eu não espero conseguir mais do que 10-15 pessoas ao mesmo tempo (e se isso é alto)

Quais configurações eu poderia alterar no apache, no mysql ou no SO para aumentar o desempenho do meu site?

Não estou preocupado em ficar sem recursos se receber muitos visitantes.

Se precisar de dados mais específicos, deixe um comentário e eu edito a pergunta.

Velocidade do banco de dados:

+--------------------+----------------------+------------------+
| Data Base Name     | Data Base Size in MB | Free Space in MB |
+--------------------+----------------------+------------------+
| information_schema |           0.00390625 |       0.00000000 | 
| joomla             |           0.33125496 |       0.07981014 | 
| moodle             |           7.73092937 |       0.01922131 | 
| mysql              |           0.52505302 |       0.00000000 | 
| phpmyadmin         |           0.01499939 |       0.00106049 | 
+--------------------+----------------------+------------------+
5 rows in set (0.07 sec)

Módulos carregados com o Apache:

core prefork http_core mod_so mod_auth_basic mod_auth_digest mod_authn_file mod_authn_alias mod_authn_anon mod_authn_default mod_authz_host mod_authz_user mod_authz_owner mod_authz_default mod_include mod_log_config mod_env mod_ext_filter mod_mime_magic mod_expires mod_deflate mod_headers mod_setenvif mod_mime mod_status mod_autoindex mod_info mod_negotiation mod_dir mod_alias mod_rewrite mod_cache mod_suexec mod_disk_cache mod_file_cache mod_cgi mod_version mod_php5 mod_ssl 

$ cat /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#don't use old password format
old_passwords=0

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links=0

#Alwaysuse the better InnoDB
default-storage-engine=InnoDB
innodb_buffer_pool_size=512

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

Estou procurando por configurações específicas para alterar o que aumentará a velocidade do servidor.

    
por Good Person 30.05.2010 / 19:04

1 resposta

2

Mysql sempre gosta de RAM. Convertendo (pelo menos a maioria) das tabelas (no joomla e moodle, não as outras) para o formato InnoDb e aumentando a memória que usa ajudará muito com a velocidade também. innodb_buffer_pool_size é a configuração do mysql. O tamanho padrão que usa é de apenas 8MB - se o seu banco de dados é realmente tão pequeno (e eu francamente ficaria um pouco surpreso com isso se estivesse realmente sendo usado), então dar a ele mesmo 16MB faria a diferença, e mais provavelmente eu daria 512MB para o innodb_buffer_pool_size de qualquer forma. Com todo o conteúdo do banco de dados na memória, ele tira o disco quase fora da equação.

A instalação do Xdebug permitirá que você descubra quais partes do site são lentas, função por função, linha por linha. O Webgrind analisará a saída do Xdebug para mostrar a você.

Para descobrir mais do que isso, você precisará coletar algumas estatísticas sobre o que o servidor está fazendo - algo como executar collcted e visualizar os gráficos que estão sendo produzidos. Mesmo olhando apenas para a saída de 'top', rodar na linha de comando pode ajudar muito a ver o que está acontecendo.

    
por 30.05.2010 / 23:46