Executando um aplicativo da web em um servidor com dois discos rígidos, qual abordagem é a melhor?

1

Eu tenho um servidor dedicado (executando o Windows 2008 Standard Edtion) com dois discos rígidos. Eu tenho um aplicativo da web (escrito em asp.net) que deve ser executado neste servidor, o aplicativo da web usa o MySQL, que também deve ser executado no mesmo servidor. Também haverá as fotos do usuário que residem na mesma pasta que a pasta do aplicativo. A maior parte do acesso será ao MySQL e às fotos do usuário.

Então, é melhor usar a segunda unidade para os arquivos de dados do aplicativo e do MySQL para que eu deixe a primeira unidade para o sistema operacional

OR

Use a primeira unidade (que também possui os arquivos do sistema operacional) para o aplicativo da web e a segunda unidade para o MySQL, para que eu diminua o tempo de acesso.

Qual abordagem deve resultar em melhor desempenho?

Muitos agradecimentos

    
por Mee 13.09.2009 / 16:38

5 respostas

4

A menos que você tenha uma pequena quantidade de RAM ou as partes hospedadas do seu servidor web consumam muita memória (ou você espera muitas conexões simultâneas para que os pequenos processos do servidor web se multipliquem em algo grande), então a única coisa Um arranjo que imponha uma carga significativa de E / S é o banco de dados.

Dar um drive próprio pode melhorar um pouco o desempenho geral, mas você também pode considerar usar as duas unidades como uma matriz RAID1 para melhorar a tolerância a falhas e, portanto, a disponibilidade (isso não elimina a necessidade de backups). ).

Se você ficar com duas unidades separadas, há algumas coisas que podem melhorar o desempenho do servidor de banco de dados:

  1. Se você fizer backups regulares (se não fizer isso, por que não ?!), faça backup na unidade em que o banco de dados não está. Isso acelerará o processo de backup e minimizará a diferença de desempenho que ele faz no aplicativo em execução
  2. Se o mysql permitir que você separe seus logs de transações dos arquivos de dados como MSSQL e outros, manter os logs e dados em unidades separadas pode dar um bom aumento de desempenho se seu banco de dados vir muitas operações de gravação
por 13.09.2009 / 17:07
1

Sugiro que você use a configuração testada e comprovada de:

  • uma partição para o sistema operacional
  • uma segunda partição para o banco de dados, aplicativo, imagens do usuário, etc.

Veja por que:

  • seu sistema operacional pode funcionar, mas seus dados, teoricamente, seriam separados de qualquer desastre do sistema operacional.
  • Você pode fazer backup de cada partição em um agendamento separado, conforme desejar.
  • Seu tempo RESTORE para uma partição seria mais rápido do que ter todos os seus ovos em um disco / partição.
  • em caso de falha de um único disco, você não verá tempo de inatividade.

O acesso ao banco de dados não teria necessariamente mais desempenho, mas o cerne disso é o desempenho clássico versus o compromisso de confiabilidade com dois discos.

Não ficou claro se os seus discos eram da mesma capacidade. Considere uma configuração RAID 1 em que o disco é particionado com essas duas partições.

Para outras medidas de desempenho:

  • considere as estratégias de cache do modo kernel do ASP.NET e do IIS
por 13.09.2009 / 18:25
0

Sempre há um debate com esse tipo de pergunta sobre qual é o caminho preferido, mas minha sugestão seria mover o aplicativo e o MySQL para o segundo disco rígido.

    
por 13.09.2009 / 17:02
0

Eu iria com a 2ª Opção também, mas tivemos uma experiência ruim com essa opção uma vez, porque quando tivemos que mudar nosso ISP, o novo ISP não nos forneceu duas unidades, elas só tinham máquinas de acionamento único, então estávamos em apuros, reorganizando tudo. No entanto, a maioria das máquinas está agora disponível com vários conectores SATA, então agora não há mais problemas, mas sim o plano de migração e o plano de crescimento devem ser considerados antes de fazer a diferença. Nosso problema agora é de 7 anos, mas sim planejamos.

    
por 13.09.2009 / 20:42
0

Como o custo de um controlador RAID de hardware é muito alto para esse projeto, acho que seria razoável supor que ele não é de missão crítica. Nesse caso, a carga no servidor provavelmente não será alta o suficiente para justificar a obsessão com o desempenho.

Quantos resultados de páginas você espera por dia? Você já mediu as características de desempenho ainda? A regra de ouro da otimização é "Measure, then do".

Eu usaria sua segunda unidade como um espelho RAID-1 antes de se preocupar com problemas de desempenho.

    
por 14.09.2009 / 04:29