Hoje tive uma reunião com um fornecedor de software sobre a infraestrutura recomendada para implantar um aplicativo específico. O aplicativo precisa de dois servidores: um servidor de aplicativos para páginas da web do servidor (.NET, Windows) e um banco de dados (SQL Server). O fornecedor alegou que esses dois servidores tinham que ter "paridade de bits". O que eles queriam dizer com isso é que, se o servidor de aplicativos tiver 32 bits, o SQL Server deverá ter 32 bits ou se o aplicativo for 64 bits, o SQL Server será 64 bits. Caso contrário, o desempenho será impactado negativamente.
Isso me parece ridículo. Os servidores são independentes e se comunicam apenas por uma rede. Os protocolos de rede não têm nada a ver com o "bit-ness" do processador em qualquer servidor.
Estou errado? Existe uma razão pela qual uma incompatibilidade realmente possa afetar negativamente o desempenho?
NOTA: Eu sei que certos aplicativos podem ser executados mais rápido ou mais devagar em 32 bits vs. 64 bits. Mas o fornecedor estava dizendo que a incompatibilidade entre servidor da Web e servidor de banco de dados causa um problema. Esta é a afirmação que estou questionando.
Respostas:
Suponho que seja possível que eles saibam de alguma interação específica entre esses dois produtos que causa um problema quando há uma incompatibilidade (mas eu realmente duvido - eu colocaria chances de 10: 1 de que o fornecedor está cheio disso).
Você pode procurar no serverfault por perguntas sobre efeitos de incompatibilidades como essa, mas duvido que você encontre muito, porque duvido que exista algum problema real a ser encontrado ...
fonte
Peça prova. Ele fez uma declaração questionável, está (mis-) vendendo coisas para você, ou ele deve fazer backup ou retraí-lo. Salve-se o trabalho braçal.
fonte
A diferença entre pares de servidores de 32 bits e 64 bits provavelmente não fará nenhuma diferença. O que fará a diferença é a continuidade de vários processos, que o vendedor pode ter confundido como sendo "paridade de bits".
fonte
Em resumo, eu diria que nenhuma paridade de bits não importa. O SQL Server não possui um protocolo de 64 e 32 bits separado.
No entanto, eu recomendaria que você alternasse os servidores para 64 bits, independentemente. O SQL Server vem apenas em 64 bits e acredito que o Windows Server também esteja indo nessa direção.
fonte
Bem, se esse fornecedor se referir estritamente ao desempenho, pode haver alguma verdade nisso. Certamente não há incompatibilidade entre os sistemas x86 e amd64, porque o protocolo de rede deve esconder isso.
No entanto, a representação interna dos valores deve ser transformada durante a transferência. Então, alguma forma de
pack/unpack
fazer parte dela. No entanto, eu assumiria que o protocolo de rede não define duas variações e é otimizado para valores de rede ou de 32 bits de 64 bits. Portanto, pode haver conversão envolvida e pode até ser mensurável. Mas é provável que não seja significativo.fonte
Tecnicamente, a conexão com o servidor SQL geralmente é um canal binário (agora não conheço esse sistema especificamente, poderia ser um canal baseado em texto), portanto haverá alguma conversão no final do destino quando os resultados de uma consulta forem recuperados.
Isso leva a duas perguntas:
Essa conversão é feita apenas em 32x64
Pode ser que o canal binário seja independente do sistema (para que possa suportar 32x64 e 32x32 e 64x64) e a conversão ocorrerá de qualquer maneira em um sistema 32x32.
Qual é o custo da conversão.
Não consigo imaginar que isso vai afetá-lo. O custo da conversão de binário para binário é pequeno e fixo.
Há uma outra pergunta que você precisa fazer:
O custo da paridade de bits é maior? Se não, então por que mexer com os consultores. Se houver uma diferença de custo significativa, qual é a redução real no desempenho e o mais importante é que a diminuição no desempenho diminui o desempenho do servidor da Web abaixo da sua aceitação de limite.
ou seja, se o seu servidor precisar 200 páginas por segundo. Um sistema 32x32 pode fornecer 202, um 32x64 pode fornecer 200 e um 64x64 pode fornecer 210. Então, nessa situação, não importa qual sistema você possui (todos eles atendem aos padrões), mas é o custo extra que vale 10 páginas extras por segundo .
No final, mesmo que haja um pequeno custo extra (que eu duvido). Esse custo é significativo ou mensurável em relação aos outros custos acumulados pelo servidor da Web. Ou seja, olhando para um exemplo extremo: se o custo de criação de uma página for 100ms, dos quais 15ms é o servidor da Web. Se a versão sem paridade de bits for 33% mais cara (20ms), esse peitoril apenas aumentará o custo de criação de uma página para 105ms, um aumento em apenas 5%.
fonte