c# - ¿Puedo ejecutar Memcached en un entorno Windows(x64) de 64 bits?
c++ 64bit (12)
¿Estás 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.
En su defecto, ¿realmente has intentado compilarlo para 64 bits? Un breve análisis de algunos Grupos de Google, etc. donde la gente hizo esta misma pregunta sugiere que esa puede ser exactamente la solución para esto. Creo que probablemente esté sobreestimando la diferencia entre Windows de 32 bits y 64 bits (al menos en lo que respecta a la compilación de una aplicación nativa).
¿Alguien sabe SI , CUÁNDO o CÓMO puedo ejecutar Memcached en un entorno de Windows 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 servidores de 32 bits frente a 64 bits, pero digamos que mi preferencia es de 64 bits y que tengo very good razones.
Hasta ahora, he intentado varias opciones y encontré un bit de help relacionada con conseguir esto en una máquina de 32 bits (y tuve éxito en agregar), pero dado que el puerto original de Windows es específico de Win32, esto difícilmente ayudará cuando se instala como un servicio en x64. También tiene una dependencia en el libevent para el cual 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 debido a las intrincadas diferencias en las arquitecturas de 32 y 64 bits, pero me pregunto si alguien está trabajando para lograr esto. ¿el terreno? Desafortunadamente, mi experiencia radica solo en el código administrado (C #); de lo contrario, trataría de resolver esto por mi cuenta, pero no puedo creer que sea el único que está tratando de ejecutar Memcached en un servidor Windows de 64 bits. ..am yo?
Cualquier ayuda o recomendación apreciada ...
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 que una compilación estable haya fallado, he destruido un servidor y 3 VM lo estoy probando, así que ahora recurrir a los verdaderos expertos. ¿Alguien planea 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 - realmente uso Enyim - es muy bueno, pero a lo que se refiere es a un cliente, en lugar de a la parte del servidor.
@DannySmurf: solo pude instalarlo como un servicio en un sistema operativo de 32 bits. SO de 64 bits rechaza la instalación de este servicio Win32. Por supuesto que sí, muchos códigos Win32 funcionan sin problemas en la arquitectura x64, por lo tanto, 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 complace que me corrijan sobre esto, pero para responder a su pregunta, sí lo he intentado.
@OJ - muchas gracias por la respuesta directa. Pensé mucho, pero no estaba seguro si alguien más tenía sugerencias o ya había pasado por esta ruta. 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 grandes soluciones escalables. Creo que necesitaría una intervención educada en lugar de mi enfoque experimental no analizado antes de poder confiar. Un pequeño descuido de mi parte podría hacer que el sitio caiga. Oh bueno ... hasta la próxima vez ...
Amigo, Codeplex es tu amigo -> Codeplex este puerto . Solía tener una versión de 64 bits, pero puede descargar lo último y compilar 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 todavía 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.
Los laboratorios North Scale han 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 es GRATIS pero tiene una distribución mejorada con clústeres, interfaz de usuario de administración / estadísticas basada en la web, etc. (No estoy relacionado con ellos de ninguna manera) Compruébelo en http://northscale.com/products/memcached.html y descargue en: http://www.northscale.com/download.php?a=d
ACTUALIZACIÓN 2: NorthScale Memcached ya no está disponible como una descarga independiente. Ahora lo han hecho parte de su oferta comercial de bases de datos sin SQL llamada Membase. Se puede configurar para ejecutarse en modo Memcached-only (es decir, sin persistencia) y también hay una versión 100% gratuita. Compruébelo aquí: http://www.membase.org/downloads
ACTUALIZACIÓN 3: MemBase se ha acostado con CouchDB y ha producido una oferta de producto híbrido, llamada CouchBase. Todavía ofrecen una versión gratuita de "Comunidad" en http://www.couchbase.com/download
Memcached 1.4.5 binary 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 , la memcached incluida parece ser la versión 1.7.1.1 (parece una versión interna, no puedo decir cuál es el verdadero)
En cuanto a ejecutar memcached como un servicio, este tutorial puede ser suficiente:
http://www.richardnichols.net/2010/08/install-memcached-on-windows-server/
Para que la gente sepa, la versión de 32 bits y de 64 bits creada por las buenas personas de membase / couchbase / lo que aún 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
s3.amazonaws.com/downloads.northscale.com/…
La versión de 64 bits tiene el tiempo de actividad incorrecto.
Entonces quizás quieras este binario de 1.4.2:
http://www.urielkatz.com/archive/detail/memcached-64-bit-windows/
La versión de 32 bits incluida con MemCacheDManager también respalda 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
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 al máximo Memcached en una plataforma de 64 bits. Esta puede no ser una tarea fácil dependiendo del código. Si fue escrito teniendo en cuenta la portabilidad de 64 bits, podría ser una recompilación simple. Si no lo ha hecho, entonces podría estar haciendo un buen parche antes de construirlo ... ¡y luego tendría que verificar que no ha roto nada!
No creo que esté sobreestimando las diferencias entre 32 y 64 bits en absoluto. Un error común es suponer que el trabajo es una recompilación simple cuando en realidad no lo es. Hay más problemas de portabilidad de lo que la mayoría de la gente cree. El hecho de que la aplicación se genere y termine con un binario, no significa que el binario vaya a comportarse como debería. Especialmente cuando puede interactuar con otro código de 32 bits.
Habiendo dicho eso, ¡podría valer la pena darle un giro!
Buena suerte. ¡Aclamaciones!
@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ás ejecutar una versión de 32 bits en una máquina de 64 bits. Si tuviera una máquina de 64 bits, tendría sentido ejecutar una versión de 64 bits para aprovechar al máximo las funciones del hardware.
Si esto puede ayudar, he hecho 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 ( http://downloads.northscale.com/memcached-1.4.5-amd64.zip ).
Es un servicio de Windows y funciona perfectamente en un entorno de producción:
https://github.com/eric-b/MemcachedService64
Siempre se pueden ejecutar múltiples instancias de procesos memcached de 32 bits en una caja, lo que permite que esa máquina sirva un espacio total de Memcache de> 2 GB.
Solo buscaba 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 el memcached.exe con los comandos adecuados a través de cmd y está funcionando bien. Estoy usando Windows Vista 64 bits, no sé si hay alguna diferencia entre Vista y las versiones de servidor.
Un cordial saludo Fleshgrinder
Tengo un memcached-1.2.1 para win32 originalmente descargado 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 bit. memcached.exe -> propiedades -> Compatibilidad -> Ejecute este programa en modo compatibilidad para: Windows XP (SP 3) . Tenga en cuenta que el usuario Uriel Katz menciona en este debate que este método está restringido a 2 GB de memoria de uso.
FYI, no pude obtener la versión de 64 bits (de aquí http://labs.northscale.com/memcached-packages/ ) para instalarla como un servicio hasta que ejecuté memcached como administrador.
Simplemente fui a las propiedades del ejecutable, luego a la pestaña de Compatibilidad, y marqué "Ejecutar este programa como administrador" (hay muchas otras formas de hacerlo, pero me pareció más simple)
Entonces finalmente pude ejecutar con éxito: memcached -d install
No te olvides de iniciar el servicio después de que esté instalado también :)