Hoy tuve una reunión con un proveedor de software sobre su infraestructura recomendada para implementar una aplicación en particular. La aplicación necesita dos servidores: un servidor de aplicaciones para las páginas web del servidor (.NET, Windows) y una base de datos (SQL Server). El vendedor afirmó que estos dos servidores tenían que tener "paridad de bits". Lo que querían decir con esto es que si el servidor de la aplicación tenía 32 bits, el Servidor SQL debería tener 32 bits, o si la aplicación tiene 64 bits, el Servidor SQL tiene 64 bits. De lo contrario, el rendimiento se verá afectado negativamente.
Esto me parece ridículo. Los servidores son independientes y solo se comunican a través de una red. Los protocolos de red no tienen nada que ver con el "bit-ness" del procesador en ninguno de los servidores.
¿Estoy equivocado? ¿Hay alguna razón por la cual un desajuste en realidad podría afectar negativamente el rendimiento?
NOTA: Sé que ciertas aplicaciones pueden ejecutarse más rápido o más lento en 32 bits frente a 64 bits. Pero el vendedor decía que la falta de coincidencia entre el servidor web y el servidor de base de datos causa un problema. Esta es la declaración que estoy cuestionando.
Respuestas:
Supongo que es posible que sepan alguna interacción específica entre esos dos productos que causa un problema cuando hay un desajuste (pero realmente lo dudo, pondría unas probabilidades de 10: 1 de que el vendedor está lleno).
Es posible que desee buscar en el servidor predeterminado preguntas sobre los efectos de desajustes como ese, pero dudo que encuentre mucho, porque dudo que haya algún problema real para encontrar ...
fuente
Pide prueba. Ha hecho una declaración cuestionable, te está (mal) vendiendo cosas, ya sea que debería respaldarlo o retractarse. Ahórrate el trabajo preliminar.
fuente
La diferencia entre pares de servidores de 32 bits y 64 bits probablemente no hará ninguna diferencia. Lo que marcará la diferencia es la resistencia de varios procesos, que el vendedor puede haber confundido como "paridad de bits".
fuente
En resumen, diría que no importa la paridad de bits. SQL Server no tiene un protocolo separado de 64 bits y 32 bits.
Sin embargo, recomendaría que cambie los servidores a 64 bits independientemente. SQL Server viene solo en 64 bits y creo que Windows Server también se dirige en esa dirección.
fuente
Bueno, si dicho proveedor se refería estrictamente al rendimiento, podría ser cierto. Ciertamente no hay incompatibilidad entre los sistemas x86 y amd64, porque el protocolo de red debería ocultarlo.
Sin embargo, la representación interna de los valores debe transformarse durante la transferencia. Entonces alguna forma de
pack/unpack
será parte de ello. Sin embargo, supondría que el protcol de red no define dos variaciones y está optimizado para una red de 64 bits o valores de 32 bits. Por lo tanto, podría haber una conversión involucrada, e incluso podría ser medible. Pero es probable que no esté muerto.fuente
Técnicamente, la conexión al servidor SQL suele ser un canal binario (ahora no conozco este sistema específicamente, podría ser un canal basado en texto), por lo que habrá alguna conversión en el extremo de destino cuando se recuperen los resultados de una consulta.
Esto lleva a dos preguntas:
¿Esta conversión se realiza solo en 32x64?
Podría ser que el canal binario sea independiente del sistema (por lo que puede admitir 32x64 y 32x32 y 64x64) y la conversión sucederá de todos modos en un sistema 32x32.
¿Cuál es el costo de la conversión?
No puedo imaginar que esto te va a afectar. El costo de la conversión binaria a binaria es pequeño y fijo.
Hay otra pregunta que debe hacer:
¿Es el costo de tener una paridad de bits más alta? Si no es así, ¿por qué meterse con los consultores? Si hay una diferencia de costo significativa, ¿cuál es la disminución real en el rendimiento y, lo más importante , la disminución en el rendimiento reduce el rendimiento del servidor web por debajo de su umbral de aceptación?
es decir, si su servidor necesita un servidor de 200 páginas por segundo. Un sistema 32x32 puede entregar 202, un 32x64 puede entregar 200 y un 64x64 puede entregar 210. Entonces, en esta situación, no importa qué sistema tenga (todos cumplen con los requisitos), pero es el costo adicional que vale las 10 páginas adicionales por segundo .
Al final, incluso si hay un pequeño costo adicional (que dudo). ¿Es este costo significativo o medible en comparación con los otros costos acumulados por el servidor web? es decir, mirando un ejemplo extremo: si el costo de construir una página es de 100 ms, de los cuales 15 ms es el servidor web. Si la versión de paridad sin bits es un 33% más cara (20 ms), este umbral solo aumenta el costo de construir una página a 105 ms, un aumento de solo el 5%.
fuente