¿Alguien sabe SI , CUÁNDO o CÓMO puedo hacer que Memcached se ejecute en un entorno Windows de 64 bits?
Estoy configurando una nueva solución de alojamiento y preferiría ejecutar un sistema operativo de 64 bits, y dado que es una solución ASP.Net MVC con SQL Server DB, el sistema operativo será Windows Server 2003 o (¡con suerte!) 2008.
Sé que esto podría extenderse a un debate sobre 32 bits frente a 64 bits en servidores, pero digamos que mi preferencia es 64 bits y que tengo muy buenas razones.
Hasta ahora, probé una serie de opciones y encontré un poco de ayuda relacionada con la instalación de esto en una máquina de 32 bits (y lo logré, podría agregar), pero dado que el puerto original de Windows es específico para Win32, esto difícilmente ayudará al instalar como servicio en x64. También tiene una dependencia del libevent para el que solo puedo obtener una versión compilada de Win32.
Sospecho que simplemente cargar todo esto en C ++ y presionar "compilar" (para 64 bits) no funcionaría, sobre todo por las intrincadas diferencias en las arquitecturas de 32 y 64 bits, pero me pregunto si alguien está trabajando para sacar esto. ¿el terreno? Desafortunadamente, mi experiencia radica solo en el código administrado (C #), de lo contrario, trataría de asumir esto por mí mismo, pero no puedo creer que sea el único que intenta que Memcached se ejecute en un servidor Windows de 64 bits. .. soy yo?
Actualizar
Sí, me temo que todavía estoy buscando una respuesta a esto; todos mis esfuerzos (con mis patéticas habilidades en C ++) para hacer una compilación estable han fallado; he destruido un servidor y 3 máquinas virtuales solo probándolo, así que ahora recurra a los verdaderos expertos. ¿Alguien está planeando portar esto a 64 bits? ¿O realmente estás sugiriendo que use MS Velocity en su lugar? Me estremezco de solo pensarlo.
Actualización: @Lars - En realidad uso Enyim - es muy bueno, pero a lo que te refieres es a un cliente, en lugar de a la parte del servidor.
@DannySmurf: solo he podido instalarlo como un servicio en un sistema operativo de 32 bits. El sistema operativo de 64 bits rechaza la instalación de este servicio Win32. Por supuesto que sí, una gran cantidad de código Win32 funciona a la perfección en la arquitectura x64, por lo que puede ejecutar aplicaciones de 32 bits (como Office, por ejemplo) o juegos en Vista / XP 64, etc., pero esto no se traduce directamente cuando se trata de servicios. No soy un experto, sospecho que tiene que ver con las sincronizaciones o eventos a los que los servicios necesitan suscribirse, y sospecho que 64 y 32 no funcionan bien. Me alegra que me corrijan en todo esto, pero para responder a su pregunta, sí, lo he intentado.
@OJ - muchas gracias por la respuesta directa. Lo pensé mucho, pero no estaba seguro de si alguien más tenía sugerencias o ya había seguido este camino. Tal vez cuando StackOverflow esté EN VIVO, más personas responderán y me harán saber si esto es algo que se está investigando, y aunque puedo intentar compilarlo yo mismo, simplemente no puedo "confiar" (con mi nivel de experiencia en C ++) que proporcionaría confiabilidad de "nivel empresarial" en un componente tan crucial de grandes soluciones escalables. Creo que necesitaría una intervención educada en lugar de mi enfoque experimental no higienizado antes de que pudiera tener confianza. Un pequeño descuido de mi parte podría derribar el sitio. Bueno ... hasta la próxima.
Respuestas:
North Scale Labs ha lanzado una compilación de memcached 1.4.4 para Windows x64:
http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available
http://labs.northscale.com/memcached-packages/
ACTUALIZACIÓN: han lanzado recientemente Memcached Server, todavía GRATIS pero con una distribución mejorada con agrupación en clústeres, interfaz de usuario de estadísticas / administración basada en la web, etc. (no estoy relacionado con ellos de ninguna manera) Compruébelo en http://northscale.com/ products / memcached.html y descargar en: http://www.northscale.com/download.php?a=d
ACTUALIZACIÓN 2: NorthScale Memcached ya no está disponible como descarga independiente. Ahora lo han incorporado a su oferta comercial de base de datos sin SQL llamada Membase. Se puede configurar para que se ejecute en modo solo Memcached (es decir, sin persistencia) y también hay una versión 100% gratuita. Compruébalo aquí: http://www.membase.org/downloads
ACTUALIZACIÓN 3: MemBase se ha acostado con CouchDB y ha producido una oferta de productos híbridos, llamada CouchBase. Todavía ofrecen una versión gratuita de "Comunidad" en http://www.couchbase.com/download
fuente
Para que la gente sepa, la versión de 32 bits y 64 bits construida por las buenas personas de membase / couchbase / lo que sea que todavía esté disponible, la URL del blog ha cambiado:
Binario de 32 bits de memcached 1.4.4 como servicio de Windows:
http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available
http://s3.amazonaws.com/downloads.northscale.com/memcached-win32-1.4.4-14.zip
Binario de 64 bits de memcached 1.4.4 como servicio de Windows:
http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available
http://s3.amazonaws.com/downloads.northscale.com/memcached-win64-1.4.4-14.zip
La versión de 64 bits tiene un tiempo de actividad incorrecto.
Entonces, tal vez quieras este binario de 1.4.2 en su lugar:
http://www.urielkatz.com/archive/detail/memcached-64-bit-windows/
La versión de 32 bits incluida con MemCacheDManager también admite la ejecución en Windows 2000 (sin IPv6):
http://allegiance.chi-town.com/MemCacheDManager.aspx http://allegiance.chi-town.com/Download.aspx?dl=Releases/MemCacheDManager_1_0_3_0.msi&rurl=MemCacheDManager.aspx
Para desempaquetar el msi:
msiexec / a Releases_MemCacheDManager_1_0_3_0.msi / qb TARGETDIR = c: \ memcached
fuente
El binario Memcached 1.4.5 para win x64 se puede encontrar aquí: http://downloads.northscale.com/memcached-1.4.5-amd64.zip
Otra opción sería instalar Couchbase Server 1.8.0 x64 desde aquí: http://www.couchbase.com/download , el memcached incluido parece ser la versión 1.7.1.1 (suena como una versión interna, no puedo decir cuál es el real)
En cuanto a ejecutar Memcached como servicio, este tutorial podría ser suficiente:
http://www.richardnichols.net/2010/08/install-memcached-on-windows-server/
fuente
Binarios actualizados
NorthScale tiene versiones realmente antiguas (la más reciente es 1.4.5 que es de abril de 2010) pero hay un tipo que ofrece binarios Memcached de 64 bits para Windows compilados con Cygwin (pero no requieren que esté instalado) en su repositorio de GitHub github. com / nono303 / memcached .
Por ejemplo, los binarios de la versión lanzada más recientemente (al momento de escribir esta respuesta) 1.5.16 están aquí . Hay versiones de 32 y 64 bits.
Memcached como servicio de Windows
Si desea instalarlo como un servicio de Windows, puede utilizar, por ejemplo, el Administrador de servicios Non-Sucking de código abierto :
nssm install memcached c:\path\to\memcached.exe nssm start memcached
Consulte la documentación para obtener más detalles.
fuente
Personalmente, creo que tendrías que volver a compilar la aplicación usando un compilador de 64 bits (obviamente en una máquina de 64 bits) para aprovechar al máximo Memcached en una plataforma de 64 bits. Esto puede no ser una tarea fácil dependiendo del código. Si se escribió con la portabilidad de 64 bits en mente, podría ser una simple recompilación. Si no es así, entonces podría estar listo para un poco de parche antes de que se compile ... ¡y luego tendría que verificar que no haya roto nada!
No creo que esté sobrestimando las diferencias entre 32 y 64 bits en absoluto. Un error común es asumir que el trabajo es una simple recompilación cuando en realidad no lo es. Hay más problemas de portabilidad de los que la mayoría de la gente cree. El hecho de que la aplicación se compile y termine con un binario no significa que el binario se comportará como debería. Especialmente cuando puede interactuar con otro código de 32 bits.
Habiendo dicho eso, ¡podría valer la pena darle una vuelta!
Buena suerte. ¡Salud!
@Lars: Recomiendo leer la pregunta antes de intentar una respuesta.
@John Sibly & @DannySmurf: dada la naturaleza de Memcached y lo que pretende lograr, ¿seguramente no querrá ejecutar una versión de 32 bits en una máquina de 64 bits? Si tuviera una máquina con capacidad de 64 bits, tendría sentido ejecutar una versión de 64 bits para aprovechar al máximo las características del hardware.
fuente
Tengo un memcached-1.2.1 para win32 descargado originalmente desde aquí: http://jehiah.cz/projects/memcached-win32/ (pero ahora, por alguna razón, es un enlace roto).
Así es como logré ejecutar Memcached para Win32 en Windows Server 2008 R2, 64 bits. memcached.exe -> propiedades -> Compatibilidad -> Ejecute este programa en modo de compatibilidad para: Windows XP (SP 3) . Tenga en cuenta que el usuario Uriel Katz menciona en esta discusión que este método se restringe a 2GB de memoria de uso.
fuente
Estaba buscando memcached en un sistema Windows de 64 bits y encontré esto. Hasta ahora no hay ninguna versión memcached de Win64. Pero acabo de iniciar memcached.exe con los comandos apropiados a través de cmd y está funcionando bien. Estoy usando Windows Vista de 64 bits, no sé si hay diferencias entre Vista y las versiones del servidor.
Saludos cordiales Fleshgrinder
fuente
Amigo, CodePlex es su amigo -> echa un vistazo a este puerto de la misma. Solía tener una versión de 64 bits, pero puede descargar la última y compilar para 64 bits (bastante fácil) o consultar las versiones anteriores.
fuente
La versión de 32 bits se ejecuta en 64 bits a través de WOW64, pero el proceso aún está limitado a 2 GB, con una versión de 64 bits puede ir más allá a más de una sola máquina.
fuente
¿Está seguro de que la versión de 32 bits no solo se ejecuta en Windows de 64 bits, sin modificaciones? La mayoría de las cosas lo hacen.
De no ser así, ¿ha intentado compilarlo para 64 bits? Un breve análisis de algunos grupos de Google, etc., donde las personas hicieron esta misma pregunta sugiere que esa puede ser exactamente la solución a esto. Creo que probablemente esté sobreestimando la diferencia entre Windows de 32 y 64 bits (al menos en lo que respecta a la compilación de una aplicación nativa).
fuente
Para su información, no pude obtener la versión de 64 bits (desde aquí http://labs.northscale.com/memcached-packages/ ) para instalar como un servicio hasta que ejecuté memcached como administrador.
Simplemente fui a las propiedades del ejecutable, luego a la pestaña Compatibilidad y verifiqué "Ejecutar este programa como administrador" (hay un montón de otras formas de hacer esto, pero parecía la más simple)
Entonces finalmente pude ejecutar con éxito: memcached -d install
No olvide iniciar el servicio después de que esté instalado también :)
fuente
Siempre puede ejecutar varias instancias de procesos memcached de 32 bits en una caja, lo que permite que esa máquina proporcione un total de> 2 GB de espacio en Memcache.
fuente
Si esto puede ayudar, hice un contenedor basado en una compilación de memcached 1.4.5 de 64 bits que se encuentra a través de esta página ( enlace directo al binario NorthScale ).
Es un servicio de Windows y funciona perfectamente bien en un entorno de producción:
https://github.com/eric-b/MemcachedService64
fuente