Velocidade do servidor: compartilhando um script.php ou usando muitas cópias do mesmo script.php

1

Vamos supor:

  1. Eu tenho milhares de domínios no mesmo servidor Apache.

  2. Cada domínio está em uma pasta na pasta de documentos do servidor public_html, portanto, ele pode ser acessado ligando para "www.somedomain.com" ou ligando para "www.serverdomain.com/somedomain_folder"

  3. Em cada domínio, há um site que precisa de um determinado script.php (idêntico para cada domínio).

De um ponto de vista de codificação, é óbvio que é melhor usar um script.php exclusivo, por isso, ao atualizá-lo com novos recursos / correções de bugs, preciso atualizar no servidor apenas um arquivo e ele funcionará para todos domínios.

Mas do ponto de vista do servidor? Se eu usar um script exclusivo, todos os domínios o acessarão ao mesmo tempo. O servidor será executado mais lentamente em comparação à situação em que cada domínio chamou seu próprio script?

    
por Marco Demaio 17.05.2010 / 21:54

3 respostas

2

If I use a unique script all domains will access it at the same time, will the server run slower compared to the situation where each domain called its own script?

Eu acho que é o contrário. Não deve ser mais lento . A questão é: " irá rodá-lo em conjunto para torná-lo mais rápido "? Quanto a esse ponto - teoricamente, sim . Mas a diferença prática pode ser indiscernível.

O ponto é - se houver apenas um script para todos os usuários (a idéia de bibliotecas compartilhadas) não é apenas mais fácil de manter, como apontado anteriormente aqui, mas o armazenamento em cache embutido mecanismos devem ser mais eficientes (pelo menos da minha compreensão do assunto). Um arquivo para ler, maneira fácil de armazenar em cache na memória. Vários arquivos idênticos (não sym / hardlinked, diferentes inodes ) - isso é mais problemático. Ou estou subestimando as capacidades do Linux aqui? Por favor, corrija-me se estiver errado - meu conhecimento sobre os internos não é tão profundo, mas acho que isso resultaria em buscas / bufferizações independentes.

Outro ponto - usando caches opcode . Não tenho certeza sobre como ele aparece em diferentes implementações, mas na maioria dos casos, usar vários scripts idênticos resultaria em entradas de cache desnecessárias . No entanto, há um problema em potencial com scripts compartilhados - quando o armazenamento em cache fica muito agressivo (como o armazenamento em cache de arquivos de configuração externos entre diferentes usuários). Eu encontrei recentemente esse tipo de comportamento com XCache e hardlinks . Com a configuração adequada e implementações sem bugs, isso não é um problema.

Então, minha conclusão :

Se for viável, usarei instalações compartilhadas para conveniência e desempenho . No entanto, em algumas situações, a diferença no desempenho pode ser insignificante, então é provavelmente " o que melhor se adequa à sua situação ".

    
por 18.05.2010 / 16:41
4

Eu diria que é melhor colocar esse script no caminho de inclusão do PHP do seu servidor e use-o em todos os seus sites.

Não acho que a manutenção de cópias para cada domínio resulte em melhoria de velocidade. Se você notar lentidão ao usar um script comum, tente vários módulos de cache php / apache para acelerar um pouco as coisas.

E sim, como você disse, você pode atualizar em um só lugar e todos os sites usarão o script php atualizado. Esta conveniência particular supera muitas outras alternativas.

    
por 17.05.2010 / 22:01
1

Da minha experiência usando um diretório compartilhado de módulos comuns não irá diminuir o seu servidor, caso contrário, você teria uma cópia única de todas as bibliotecas PHP para todos os domínios.

    
por 18.05.2010 / 15:16