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.
Réponses:
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
la source
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
la source
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/
la source
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 :
Consultez la documentation pour plus de détails.
la source
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.
la source
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.
la source
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
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.
la source
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.
la source
Ê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).
la source
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 :)
la source
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.
la source
Si cela peut aider, j'ai fait un wrapper basé sur une compilation de Memcached 1.4.5 64 bits trouvée sur cette page ( lien direct vers le binaire NorthScale ).
C'est un service Windows et cela fonctionne parfaitement bien dans un environnement de production:
https://github.com/eric-b/MemcachedService64
la source