Eu tenho um pequeno site com Joomla e Moodle configurados. Parece que ambos são muito lentos. O servidor (CentOS versão 5.5 (Final)) é um servidor virtual dedicado com cerca de 2 GB de RAM. Não espero conseguir mais do que 10-15 pessoas ao mesmo tempo (e se isso for alto)
Quais configurações eu poderia alterar no Apache, MySQL ou até mesmo no sistema operacional 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 editarei 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 pelo 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
$ gato /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 porconfigurações específicasmudar isso aumentará a velocidade do servidor.
Responder1
Mysql sempre gosta de RAM. Converter (pelo menos a maioria) das tabelas (no joomla e no moodle, não nos outros) para o formato InnoDb e aumentar a memória utilizada também ajudará muito na velocidade. innodb_buffer_pool_size é a configuração do mysql. O tamanho padrão usado é de apenas 8 MB - se o seu banco de dados for realmente tão pequeno (e eu francamente ficaria um pouco surpreso com esse pouco se ele estivesse realmente sendo usado), então dar a ele até 16 MB faria a diferença, e mais provavelmente eu daria 512 MB para o innodb_buffer_pool_size de qualquer maneira. Com todo o conteúdo do banco de dados na memória, o disco quase sai da equação.
InstalandoXdebugpermitirá que você descubra quais partes do site estão lentas, função por função, linha por linha. Web Grindirá 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 o collcted e depois visualizar os gráficos que estão sendo produzidos. Mesmo apenas olhando a saída de 'top', rodar na linha de comando pode ajudar muito a ver o que está acontecendo.