Pregunta

Alguien sabe SI, CUANDO o CÓMO puedo conseguir Memcached ¿Se ejecuta 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 derivar en un debate sobre 32 bits versus 64 bits en servidores, pero digamos que mi preferencia es 64 bits y que tengo algunos muy bien razones.

Hasta ahora, probé varias opciones y encontré una poco de ayuda relacionado con la instalación de esto en una máquina de 32 bits (y tuve éxito, debo agregar), pero desde el original Puerto de Windows es específico de Win32, esto no ayudará cuando se instale como un servicio en x64.También tiene una dependencia de la liberal para lo cual sólo 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 debido a las intrincadas diferencias entre las arquitecturas de 32 y 64 bits, pero me pregunto si alguien está trabajando para solucionar esto. ¿el terreno?Desafortunadamente, mi experiencia reside únicamente en código administrado (C#); de lo contrario, intentaría encargarme de esto yo mismo, pero no puedo creer que sea el único que intenta conseguirlo. memcached ejecutándose en un servidor Windows de 64 bits... ¿lo soy?

Cualquier ayuda o recomendación se agradece...


Actualizar

Sí, me temo que todavía estoy buscando una respuesta a esto: todos mis esfuerzos (con mis patéticas habilidades en C++) para crear una compilación estable han fallado; destruí un servidor y 3 máquinas virtuales lo estaban probando, así que ahora recurra a los verdaderos expertos.¿Alguien está pensando en migrar esto a 64 bits?¿O realmente estás sugiriendo que utilice MS Velocity en su lugar?Me estremezco de solo pensarlo...


Actualizar:@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 pude instalarlo como 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í, gran parte del código Win32 funciona perfectamente en la arquitectura x64, por lo que puedes 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 deben 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 sencilla respuesta.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++) en que proporcionaría confiabilidad de "nivel empresarial" en un componente tan crucial de las grandes soluciones escalables.Creo que necesitaría una intervención educada en lugar de mi enfoque experimental poco higiénico antes de poder tener confianza.Un pequeño descuido de mi parte podría hacer que el sitio caiga.Oh bien...hasta la próxima...

¿Fue útil?

Solución

Los laboratorios de North Scale han lanzado una versió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/

ACTUALIZAR:Recientemente lanzaron Memcached Server, una distribución aún GRATUITA pero mejorada con agrupación en clústeres, interfaz de usuario de administración/estadísticas basada en web, etc.(No estoy relacionado con ellos de ninguna manera) Compruébalo 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 convertido en parte de su oferta comercial de base de datos No-SQL llamada Membase.Se puede configurar para ejecutarse en modo solo Memcached (es decir,sin persistencia) y también existe una versión 100% gratuita.Compruébalo aquí: http://www.membase.org/downloads

ACTUALIZACIÓN 3:MemBase se acostó con CouchDB y produjo una oferta de producto híbrido, llamada CouchBase.Todavía ofrecen una versión "Comunitaria" gratuita en http://www.couchbase.com/download

Otros consejos

Para que la gente sepa, la versión de 32 y 64 bits creada por la buena gente de membase/couchbase/lo que sea todavía está disponible, aunque 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 descomprimir el msi:

msiexec /a Releases_MemCacheDManager_1_0_3_0.msi /qb TARGETDIR=c:\memcached

El binario de 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 la 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/

Personalmente creo que tendrías que recompilar la aplicación usando un compilador de 64 bits (obviamente en una máquina de 64 bits) para aprovechar Memcached al máximo en una plataforma de 64 bits.Puede que esta no sea una tarea fácil según el código.Si se escribió teniendo en mente la portabilidad de 64 bits, entonces podría ser una simple recompilación.Si no es así, entonces podría necesitar bastantes parches antes de comenzar a compilarlo.¡Y luego tendrías que verificar que no has roto nada!

No creo que estés sobreestimando en absoluto las diferencias entre 32 y 64 bits.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.Sólo porque la aplicación se construye y terminas con un binario, no significa que el binario se comportará como debería.Especialmente cuando puede interactuar con otro código de 32 bits.

Dicho esto, ¡podría valer la pena darle una vuelta!

Buena suerte.¡Salud!


@Lars:Recomiendo leer la pregunta antes de intentar una respuesta.

@John Sably y @DannySmurf:Dada la naturaleza de Memcached y lo que pretende lograr, seguramente no querrás 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 funciones del hardware.

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 -> Ejecuta este programa en modo 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 2 GB de memoria de uso.

Estaba buscando memcached en un sistema Windows de 64 bits y encontré esto.Hasta el momento no existe 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

Dudar, Códigoplex es tu amigo -> mira este puerto de ello.Solía ​​tener una versión de 64 bits, pero puedes descargar la última versión y compilarla para 64 bits (bastante fácil) o consultar las versiones anteriores.

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á de eso a más de lo que tendrá una sola máquina.

¿Está seguro de que la versión de 32 bits no se ejecuta únicamente en Windows de 64 bits, sin modificaciones?La mayoría de las cosas lo hacen.

De lo contrario, ¿ha intentado realmente compilarlo para 64 bits?Un breve análisis de algunos Grupos de Google, etc., donde las personas hicieron la misma pregunta sugiere que esa puede ser exactamente la solución.Creo que probablemente estés sobreestimando la diferencia entre Windows de 32 y 64 bits (al menos en lo que respecta a compilar una aplicación nativa).

Para su información, no pude obtener la versión de 64 bits (desde aquí http://labs.northscale.com/memcached-packages/) para instalarlo como servicio hasta que ejecuté memcached como administrador.

Simplemente fui a las propiedades del ejecutable, luego a la pestaña Compatibilidad y marqué "Ejecutar este programa como administrador" (Hay muchas otras formas de hacer esto, pero parecía la más simple)

Entonces finalmente pude ejecutar con éxito:memcached -d instalar

No olvide iniciar el servicio también después de instalarlo :)

Siempre puede ejecutar varias instancias de procesos Memcache de 32 bits en una sola máquina, lo que permite que esa máquina sirva un total de > 2 GB de espacio Memcache.

Si esto puede ayudar, he hecho un contenedor basado en una compilación de Memcached 1.4.5 de 64 bits encontrada a través de esta página (enlace directo al binario NorthScale).

Es un servicio de Windows y funciona perfectamente en un entorno de producción:
https://github.com/eric-b/MemcachedService64

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top