Puis-je faire fonctionner Memcached sur un environnement Windows (x64) 64 bits?

87

Quelqu'un sait-il SI , QUAND ou COMMENT je peux faire fonctionner Memcached sur un environnement Windows 64 bits?

Je mets en place une nouvelle solution d'hébergement et préférerais de loin exécuter un système d'exploitation 64 bits, et comme il s'agit d'une solution ASP.Net MVC avec SQL Server DB, le système d'exploitation sera soit Windows Server 2003, soit (espérons-le!) 2008.

Je sais que cela pourrait déboucher sur un débat concernant le 32 bits contre 64 bits sur les serveurs, mais disons simplement que ma préférence est 64 bits et que j'ai de très bonnes raisons.

Jusqu'à présent, j'ai essayé un certain nombre d'options et j'ai trouvé un peu d' aide pour le faire sur une machine 32 bits (et j'ai réussi, je pourrais ajouter), mais comme le port Windows d' origine est spécifique à Win32, cela ne va guère aider lors de l'installation en tant que service sur x64. Il a également une dépendance sur le libevent pour lequel je ne peux obtenir qu'une version compilée Win32.

Je soupçonne que simplement charger tout cela en C ++ et appuyer sur "compiler" (pour 64 bits) ne fonctionnerait pas, notamment à cause des différences complexes entre les architectures 32 et 64 bits, mais je me demande si quelqu'un travaille à le faire. le sol? Malheureusement, mon expertise réside uniquement dans le code managé (C #), sinon j'essaierais de le prendre moi-même, mais je ne peux pas croire que je suis le seul à essayer de faire fonctionner Memcached sur un serveur Windows 64 bits. ..suis-je?


Mettre à jour

Oui, j'ai bien peur de toujours chercher une réponse à cela - tous mes efforts (avec mes compétences pathétiques en C ++) pour créer une version stable ont échoué - j'ai détruit un serveur et 3 VM en train de l'essayer alors maintenant je se tourner vers les vrais experts. Quelqu'un envisage-t-il de le porter en 64 bits? Ou suggérez-vous vraiment que j'utilise MS Velocity à la place? Je frémis à cette pensée.


Mise à jour: @Lars - J'utilise Enyim en fait - c'est très bien, mais ce à quoi vous faites référence est un client, plutôt que la partie serveur.

@DannySmurf - Je n'ai pu l'installer en tant que service que sur un système d'exploitation 32 bits. Le système d'exploitation 64 bits rejette l'installation de ce service Win32. Bien sûr, oui, beaucoup de code Win32 fonctionne de manière transparente sur l'architecture x64, vous pouvez donc exécuter des applications 32 bits (comme Office par exemple) ou des jeux sur Vista / XP 64, etc., mais cela ne se traduit pas directement en ce qui concerne les services. Je ne suis pas un expert, je soupçonne que cela a à voir avec les synchronisations ou les événements auxquels les services doivent s'abonner, et je soupçonne que 64 et 32 ​​ne jouent pas bien. Je suis heureux d'être corrigé sur tout cela, mais pour répondre à votre question - oui, j'ai essayé.

@OJ - merci beaucoup pour la réponse directe. J'y ai pensé, mais je ne savais pas si quelqu'un d'autre avait des suggestions ou s'il avait déjà emprunté cette voie. Peut-être que lorsque StackOverflow est LIVE, alors plus de gens répondront et me feront savoir si c'est quelque chose en cours d'examen, et bien que je puisse essayer de le compiler moi-même - je ne peux tout simplement pas «faire confiance» (avec mon niveau d'expérience C ++) qu'il fournirait une fiabilité «au niveau de l'entreprise» dans un composant aussi crucial de grandes solutions évolutives. Je pense qu'il faudrait une intervention éclairée plutôt que mon approche expérimentale non désinfectée avant que je puisse être confiant. Un petit oubli de ma part, pourrait faire tomber le site. Eh bien ... à la prochaine fois.

RobertTheGrey
la source
Quelle erreur se produit lors de la tentative d'enregistrement du service? J'ai installé plusieurs services développés en 32 bits, dans des environnements 64 bits, et je n'ai jamais eu de problèmes. Essayez d'ouvrir une ligne de commande en 32 bits et enregistrez le service à l'aide du programme sc.exe
lsalamon

Réponses:

52

Les laboratoires North Scale ont publié une version de Memcached 1.4.4 pour Windows x64:

http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available

http://labs.northscale.com/memcached-packages/

MISE À JOUR: ils ont récemment publié Memcached serveur - toujours gratuit , mais amélioré avec le regroupement distro, administration Web / stats interface utilisateur , etc. (je ne suis pas les concernant en aucune façon) Mes à http://northscale.com/ products / memcached.html et télécharger sur: http://www.northscale.com/download.php?a=d

MISE À JOUR 2: NorthScale Memcached n'est plus disponible en téléchargement autonome. Maintenant, ils en ont fait une partie de leur offre commerciale No-SQL DB appelée Membase. Il peut être configuré pour fonctionner en mode Memcached uniquement (c'est-à-dire sans persistance) et il existe également une version 100% gratuite. Découvrez-le ici: http://www.membase.org/downloads

MISE À JOUR 3: MemBase a dormi avec CouchDB et a produit une offre de produits hybrides, appelée CouchBase. Ils offrent toujours une version gratuite "Communauté" à http://www.couchbase.com/download

zvolkov
la source
3
Je n'ai pas de représentant à modifier, mais le premier lien ici n'est pas correct actuellement; un trait d'union est nécessaire entre 64 et bit: blog.northscale.com/northscale-blog/2009/12/…
Maggie
22
Le lien de téléchargement fonctionne toujours: s3.amazonaws.com/downloads.northscale.com/…
IEnumerator
Comment puis-je configurer le serveur Memcached en utilisant la ligne de commande pour Windows? J'ai essayé le lien codeproject.com/Articles/96698/… . Mais impossible de configurer.
Naren
25

Juste pour que les gens le sachent, les versions 32 bits et 64 bits construites par les bonnes personnes de membase / couchbase / tout ce qui est encore disponible, l'URL du blog a changé:

Binaire 32 bits de Memcached 1.4.4 en tant que service 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

Binaire 64 bits de memcached 1.4.4 en tant que service 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 version 64 bits a un temps de fonctionnement incorrect.

Alors peut-être que vous voulez ce binaire de 1.4.2 à la place:

http://www.urielkatz.com/archive/detail/memcached-64-bit-windows/

La version 32 bits incluse avec MemCacheDManager prend également en charge l'exécution sous Windows 2000 (pas d'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

Pour décompresser le msi:

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

Lennie
la source
Couchbase semble maintenant pousser une approche différente couchbase.com/memcached
Mike Gifford
6

Le binaire Memcached 1.4.5 pour win x64 peut être trouvé ici: http://downloads.northscale.com/memcached-1.4.5-amd64.zip

Une autre option serait d'installer Couchbase Server 1.8.0 x64 à partir d'ici: http://www.couchbase.com/download , le memcached fourni semble être la version 1.7.1.1 (sonne comme une version interne, je ne peux pas dire laquelle est le vrai)

En ce qui concerne l'exécution de memcached en tant que service, ce tutoriel pourrait suffire:

http://www.richardnichols.net/2010/08/install-memcached-on-windows-server/

Alexandrul
la source
6

Fichiers binaires à jour

NorthScale a des versions vraiment anciennes (la plus récente est la 1.4.5 qui date d'avril 2010) mais il y a un gars qui propose des binaires Memcached 64 bits pour Windows compilés à l'aide de Cygwin (mais ils ne nécessitent pas l'installation) dans son github de référentiel GitHub. com / nono303 / memcached .

Par exemple, les binaires de la version la plus récente (au moment de la rédaction de cette réponse) 1.5.16 sont ici . Il existe des versions 32 et 64 bits.

Memcached en tant que service Windows

Si vous souhaitez l'installer en tant que service Windows, vous pouvez utiliser par exemple le gestionnaire de service open-source Non-Sucking Service Manager :

nssm install memcached c:\path\to\memcached.exe
nssm start memcached

Consultez la documentation pour plus de détails.

David Ferenczy Rogožan
la source
3

Personnellement, je pense qu'il faudrait recompiler l'application à l'aide d'un compilateur 64 bits (évidemment sur une machine 64 bits) pour tirer le meilleur parti de Memcached sur une plate-forme 64 bits. Cela peut ne pas être une tâche facile selon le code. S'il a été écrit avec la portabilité 64 bits à l'esprit, il pourrait s'agir d'une simple recompilation. Si ce n'est pas le cas, vous pourriez bien être prêt pour un peu de correctifs avant de le faire construire ... et ensuite vous devrez vérifier que vous n'avez rien cassé!

Je ne pense pas que vous surestimiez du tout les différences entre 32 et 64 bits. Une erreur courante est de supposer que le travail est une simple recompilation alors qu'en fait ce n'est pas le cas. Il y a plus de problèmes de portabilité que la plupart des gens ne le pensent. Ce n'est pas parce que l'application se construit et que vous vous retrouvez avec un binaire que le binaire se comportera comme il se doit. Surtout quand il peut interagir avec un autre code 32 bits.

Cela dit, cela vaut peut-être la peine de l'essayer!

Bonne chance. À votre santé!


@Lars: Je recommande de lire la question avant de tenter une réponse.

@John Sibly & @DannySmurf: étant donné la nature de Memcached et ce qu'il vise à réaliser, vous ne voudriez sûrement pas exécuter une version 32 bits sur une machine 64 bits? Si vous aviez une machine compatible 64 bits, il serait logique d'exécuter une version 64 bits pour tirer le meilleur parti des fonctionnalités du matériel.

JO.
la source
3

J'ai un memcached-1.2.1 pour win32 téléchargé à l'origine d'ici: http://jehiah.cz/projects/memcached-win32/ (mais maintenant, pour une raison quelconque, c'est un lien cassé).

C'est ainsi que j'ai réussi à exécuter Memcached pour Win32 sur Windows Server 2008 R2, 64 bits. memcached.exe -> propriétés -> Compatibilité -> Exécutez ce programme en mode de compatibilité pour: Windows XP (SP 3) . Notez que l'utilisateur Uriel Katz mentionne dans cette discussion que cette méthode est limitée à 2 Go de mémoire d'utilisation.

jim77
la source
2

Je cherchais juste Memcached sur un système Windows 64 bits et j'ai trouvé ceci. Jusqu'à présent, il n'y a pas de version Win64 memcached. Mais je viens de démarrer le memcached.exe avec les commandes appropriées via cmd et il fonctionne très bien. J'utilise Windows Vista 64 bits, je ne sais pas s'il existe des différences entre Vista et les versions serveur.

Cordialement, Fleshgrinder


la source
Merci pour cela - le démarrer à partir de la cmd n'était pas le problème - l'installer en tant que service était le problème. salutations, Rob G
RobertTheGrey
1

Mec, Codeplex est votre ami -> découvrez ce portage . Il avait une version 64 bits, mais vous pouvez soit télécharger la dernière version et compiler pour 64 bits (assez facile), soit vérifier les versions précédentes.

Pure.Krome
la source
1
Salut Pure.Krome, merci pour l'info mais j'ai vu cette page et je n'ai jamais vu la version serveur 64 bits. Et non - selon la réponse d'OJ ci-dessus, vous ne pouvez pas simplement compiler "facilement" en 64 bits à moins que le code n'ait été écrit de cette façon, et travailler avec la mémoire est toujours un mauvais endroit pour tester cette théorie ...
RobertTheGrey
hmm. ahh -> le bit x64 était la version BETA, il a donc été remplacé par des mises à jour plus récentes. il a été trouvé ici: codeplex.com/memcachedproviders/Release/…
Pure.Krome
1

La version 32 bits fonctionne sur 64 bits via WOW64 mais le processus est toujours limité à 2 Go, avec une version 64 bits, vous pouvez aller au-delà de cela à plus d'une seule machine.

Uriel Katz
la source
0

Êtes-vous sûr que la version 32 bits ne fonctionne pas uniquement sur Windows 64 bits, sans modification? La plupart des choses le font.

À défaut, avez-vous essayé de le compiler pour 64 bits? Une brève analyse de quelques groupes Google, etc., où les gens ont posé cette même question, suggère que cela pourrait être exactement la solution à cela. Je pense que vous surestimez probablement la différence entre Windows 32 bits et 64 bits (du moins en ce qui concerne la compilation d'une application native).

Le Schtroumpf
la source
0

Pour votre information, je n'ai pas pu obtenir la version 64 bits (à partir d'ici http://labs.northscale.com/memcached-packages/ ) à installer en tant que service jusqu'à ce que j'exécute memcached en tant qu'administrateur.

Je suis juste allé aux propriétés de l'exécutable, puis à l'onglet Compatibilité, et j'ai coché "Exécuter ce programme en tant qu'administrateur" (il y a une tonne d'autres façons de le faire, mais cela me semblait plus simple)

Ensuite, j'ai enfin pu exécuter avec succès: memcached -d install

N'oubliez pas de démarrer le service après son installation :)

Jasper Rosenberg
la source
0

Vous pouvez toujours exécuter plusieurs instances de processus Memcached 32 bits sur une seule boîte, permettant à cette machine de servir un total de> 2 Go d'espace Memcache.

Ken
la source