Supongamos que tengo una caja de Windows Server de 32 bits que opera varias aplicaciones de servidor junto con un SQL Server, con un uso de RAM de aproximadamente 2 GB en las horas pico.
¿Cuáles serían las ventajas de actualizar el sistema operativo Windows Server y SQL Server a las versiones de 64 bits correspondientes, con las aplicaciones del servidor restantes como 32 bits? Las versiones de 64 bits permiten el acceso a más de 4 GB de RAM, pero dado que 4 GB no se utilizan por completo, ¿eso generaría la actualización discutible?
Versiones: Windows Server 2008 R2, SQL Server 2008 R2 Datacenter Edition
Gracias
fuente
Como ya se señaló, ya está utilizando un sistema operativo de 64 bits. Hay dos ventajas de cambiar a una versión de 64 bits de SQL Server y una desventaja.
La única desventaja es que la versión de 64 bits de SQL Server utilizará punteros de 64 bits. Esto significa que los punteros ocuparán el doble de memoria, consumirán el doble de ancho de banda de memoria, etc. Es probable que esto sea bastante insignificante, pero es una desventaja. Está parcialmente compensado por el hecho de que cambiar a una aplicación de 64 bits le permitirá deshacerse de la sobrecarga de la capa de compatibilidad que las aplicaciones de 32 bits tienen que usar para acceder a las funciones de un sistema operativo de 64 bits.
La principal ventaja es que se realizaron numerosas mejoras significativas en el conjunto de instrucciones de la CPU a lo largo del tiempo. Algunos de ellos se hicieron junto con el cambio a 64 bits y algunos de ellos se hicieron previamente.
Pero incluso para los realizados anteriormente, la compilación de 32 bits tiene que manejar CPU que no tienen esas características y para evitar la molestia de detección y cambio entre múltiples instancias, simplemente no las usa incluso donde están presentes. Por ejemplo, las CPU de 64 bits deben tener SSE2, pero las CPU de 32 bits pueden no tenerlo. Por lo tanto, la mayoría del código de 32 bits simplemente no molesta la verificación y supone que no tiene SSE2. El código de 64 bits está seguro de que las instrucciones SSE2 están presentes y, por lo tanto, lo usarán si es la mejor opción.
El mayor es el aumento en el número de registros nombrados de uso general de 8 a 16. El número de registros XMM de 128 bits también se duplicó, de 8 a 16.
Además, un proceso de 64 bits puede hacer uso de grandes cantidades de memoria virtual. Esto es especialmente importante con los procesos que acceden a grandes cantidades de datos estructurados en el disco. Y, por supuesto, pueden usar operaciones de enteros de 64 bits que tienden a mejorar el rendimiento del cifrado, la compresión e incluso algunas operaciones del sistema de archivos en sistemas de archivos grandes.
fuente
/arch:SSE2
opción para el código de 32 bits, equivalente a gcc / clang / ICC-msse2
. Supongo que SQL no tiene muchos bucles vectorizados SIMD, pero copiar pequeñas estructuras con cargas / tiendas SIMD de 16 bytes es bueno.__fastcall
pasar argumentos en registros para muchas funciones. La convención de llamadas de 32 bits de Linux está puramente en la pila, por lo que es bastante basura para las funciones pequeñas que no están en línea.Fundamentalmente: sí. Suponiendo que nunca realice actualizaciones que sean solo de 4 bits, no estoy seguro de que incluso haya un servidor SQL de 32 bits más reciente que 2008.
Problemas con su pregunta: "Las versiones de 64 bits permiten el acceso a más de 4 GB de RAM", haga que 3 gb;) no 4. 1 gb siempre está reservado.
fuente
Problema potencial: las bibliotecas DLL de funciones definidas por el usuario (UDF) CLR requerirán sus versiones de 64 bits.
Si está utilizando una biblioteca de funciones definidas por el usuario CLR , será incompatible con los bits. Las DLL de 32 bits no se pueden usar generalmente en software de 64 bits y viceversa. Si no puede obtener la versión de 64 bits de alguna biblioteca UDF que usa, perderá esa extensión específica.
Básicamente es el mismo problema que actualizar cualquier software de 32 bits con sus complementos a su versión de 64 bits. También debe cambiar todos los complementos a sus versiones de 64 bits. En general, es fácil, pero el problema son los descontinuados donde los reemplazos no están disponibles.
fuente
¡Actuación!
Ya hay varias respuestas técnicas aquí, pero sin ser demasiado técnico, y dependiendo de su aplicación, debería ver una actualización de rendimiento.
Las piezas principales son:
https://teratrax.com/sql-server-64-bit/
Los resultados más dramáticos que vi al pasar de SQL Server de 32 bits a 64 bits (esto fue SQL Server 2005) fue aproximadamente un aumento de velocidad del 40% en la aplicación principal de un cliente. Todo lo que hicimos fue instalar el SQL Server de 64 bits, ¡todo lo demás era igual! Ese fue un gran impulso de rendimiento en el mundo real.
fuente
Puede tener un mejor rendimiento de multitarea, especialmente con programas que tienen muchos subprocesos integrados. Además, puede instalar más RAM con sistema operativo de 64 bits. Pero haga esto solo si el procesador admite instrucciones de 64 bits.
fuente