Pergunta

É bom, ruim ou indiferente para executar o SQL Server em seu servidor web?

Eu estou usando Server 2008 e SQL Server 2005, mas eu não acho que é importante para esta questão.

Foi útil?

Solução

Para sites pequenos, isso não faz um pouco de diferença. Como a carga cresce, porém, este escalas realmente mal, e mais rápido do que você pensa:

  • servidores de banco de dados são construídos na premissa de que "próprio" do servidor. Eles trocam de memória para a velocidade e eles facilmente usar toda a memória RAM disponível para o cache interno.
  • Uma vez que os recursos começam a ser escasso, perfilando torna-se muito difícil - é claro que o IIS e SQL são ambos sofrimento, menos claro onde o gargalo é. IIS precisa de CPU, SQL Server necessita de RAM ou CPU etc etc
  • Não importa quantas camadas você colocar no seu código, tudo é executado na mesma CPU, portanto, uma única aplicação em camadas vai correr melhor neste contexto - menos sobrecarga - mas não irá escala
  • .
  • A segurança é muito ruim, normalmente você isolar SQL por trás de um firewall!

Se você puder pagar, é provavelmente melhor que desembolsar alguns dólares e obter um segundo servidor, talvez usando PostgreSQL. Um servidor IIS e um custo PostgreSQL tanto quanto no IIS + SQL Server por causa do licenciamento custos ...

Outras dicas

Lojas maiores provavelmente não iria considerar esta uma boa prática ... No entanto, se você não está lidando com centenas de pedidos por segundo, você está bem colocá-los tanto em uma caixa.

Na verdade, para pequenas aplicações, você vai ver um melhor desempenho no back-end, porque os dados não tem que ir através do fio. É tudo uma questão de escala.

Tenha em mente que os servidores de banco de dados comer memória. Aqui está uma lição importante da escola de batidas duras: se você decidir executar o SQL Server 2005 na mesma máquina como o servidor web (e que é a configuração que você mencionou na sua pergunta), certifique-se de ir para o SQL Server Management Studio e fazer isso :

  1. Clique com o botão direito na instância do servidor e clique em Propriedades
  2. Selecione 'memória' da lista no lado esquerdo
  3. Change 'memória máxima do servidor' para algo que seu servidor pode sustentar.

Se você não fizer isso, o SQL Server irá eventualmente ocupar todo RAM do seu servidor e pendurar nele indefinidamente. Isso fará com que seu servidor para mais ou menos sputter e morrer. Se você não está ciente disso, ele pode ser muito frustrante para solucionar problemas.

Já fiz isso algumas vezes. Não é algo que você faria se você tivesse a infra-estrutura de uma grande corporação e não escala, mas é bom para um monte de coisas.

Ele realmente se resume a quanto trabalho seu servidor web e o servidor SQL está fazendo.

Sem mais informações duvido que você está indo para obter quaisquer respostas úteis.

Eu diria que foi melhor para executá-los no mesmo servidor até que se torne um problema. Dessa forma, você vai poupar algum dinheiro e tempo adiantado. Uma vez que o site se torna um sucesso e requer algumas mudanças arquitetônicas que já deveria ter pago por si.

Lembre-se de fazer backup:)

Se o seu servidor web é acessível ao público, esta é uma idéia muito ruim do ponto de vista de segurança.

Embora ele faz um monte de coisas mais difíceis a partir de um roteamento, firewall, portas, autenticação, etc. perspectiva, a separação é bom. Quando você tem seu servidor de banco de dados em execução no servidor web, se o servidor web está comprometido, então o seu servidor SQL é, também.

Quando você tê-los em caixas separadas, você levantou a barra um pouco.

Ainda há muito mais trabalho a ser feito para garantir o seu servidor web e servidor de banco de dados, mas por torná-lo mais fácil do que ele precisa ser?

Vai depender da carga esperada do servidor. Para sites pequenos, não é nenhum problema em tudo (se configurado corretamente). Para grandes sites, você pode querer considerar distribuir a carga sobre servidores diferentes:. Servidor web, servidor de arquivos, servidor de banco de dados, etc

Eu vi esta questão uma e outra vez. A resposta certa é colocar SQL Server em uma máquina e IIS (servidor web), por outro. Seu dinheiro vai para a máquina SQL Server porque o sistema de acionamento direita e RAM devem ser adquiridos para apoiar um servidor eficiente, mas o servidor web pode ser uma & máquina menos cara muito reduzida com apenas um conjunto unidade espelhada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top