Como configurar um servidor com 4g de memória para executar o drupal 7

9

Estou instalando o Drupal 7 em um novo servidor com 4 GB de memória. Gostaria de obter algumas dicas sobre como configurá-lo corretamente, quanta memória dar ao MySQL e quanta memória dar ao PHP. Uma coisa que descobri é que executar o Drupal 7 no servidor Zend é três vezes mais rápido do que executá-lo em um servidor Apache normal. (Acho que tem a ver com o cache do opcode. Notei que com o módulo devel ele usa um terço da memória.

Você pode compartilhar suas configurações comigo?

Nicola Peluchetti
fonte

Respostas:

5

Se você já possui os dados do Drupal7, carregue-os em um ambiente de armazenamento temporário e execute um dimensionamento de buffer com base na quantidade de dados que possui.

Etapa 1) Você deve primeiro calcular os tamanhos do buffer para o seu conjunto de dados .

Etapa 2) Se os tamanhos recomendados excederem 75% da RAM instalada (no caso, 3 GB), limpe os buffers necessários em 3 GB.

Etapa 3) Se você possui dados do InnoDB e não habilitou o innodb_file_per_table, é necessário limpar o InnoDB segmentando cada tabela em seu próprio espaço de tabela físico (isso só precisa ser feito uma vez) .

Depois de fazer isso, planeje executar essa auditoria de configuração (etapas 1 e 2) a cada 6 meses para garantir que você tenha o cache do MySQL adequado.

Curiosamente, resolvi uma pergunta semelhante a essa e respondi em 15 de abril de 2011 .

RolandoMySQLDBA
fonte
4

Algumas coisas a olhar :

Um artigo para ler :

Rackspace's: a implantação do Drupal na nuvem com nginx e boost deve fornecer muitas idéias.

Pequena citação sobre o cache do opcode:

Usamos a APC como um cache de código de operação. Isso evita que o servidor recompile o código PHP em cada carregamento de página. Além disso, tudo se encaixa facilmente na RAM (normalmente fornecemos APC 128 MB de RAM). Isso diminui drasticamente o uso da CPU. Usuários logados agora podem navegar no site muito mais rapidamente. Mas ainda podemos lidar apenas com um número limitado deles. Nós podemos fazer um pouco melhor. Em vez de consultar o MySQL toda vez que acessamos o cache, podemos armazenar essas tabelas na memória. Aí vem o memcached e o módulo cacherouter.

Bart
fonte
2

Comecei com my_huge conf no diretório mysql; Também adicionei cache de verniz à mistura. Como você já descobriu, o Zend melhora muito o desempenho.

Após alguns dias, executei o script mysqltuner e atuei em algumas das recomendações, principalmente sobre o cache da tabela temporária.

desdém
fonte
1

Dependendo do tamanho do site, você também pode querer olhar para o memcached. Isso competirá por recursos com o mysql, mas poderá reduzir a carga nele.

Jeremy French
fonte
Na verdade, você pode reduzir o InnoDB Buffer Pool e o MyISAM Key Cache se o memcached for grande o suficiente. Dessa forma, o memcached não está competindo com o mysql, mas o mysql simplesmente complementará o memcached como um conduite de dados e não como um banco de dados principal. +1 por sugerir o memcached primeiro !!!
RolandoMySQLDBA