Posso far funzionare Memcached su un ambiente Windows (x64) a 64 bit?


87

Qualcuno sa SE , QUANDO o COME posso far funzionare Memcached su un ambiente Windows a 64 bit?

Sto configurando una nuova soluzione di hosting e preferirei di gran lunga eseguire un sistema operativo a 64 bit, e poiché è una soluzione ASP.Net MVC con SQL Server DB, il sistema operativo sarà Windows Server 2003 o (si spera!) 2008.

So che questo potrebbe sconfinare in un dibattito in merito a 32 bit vs 64 bit sui server, ma diciamo solo che la mia preferenza è a 64 bit e che ho alcuni molto buoni motivi.

Finora, ho provato una serie di opzioni e ho trovato un po ' di aiuto relativo a farlo su una macchina a 32 bit (e potrei aggiungere con successo), ma poiché la porta originale di Windows è specifica per Win32, questo difficilmente aiuterà durante l'installazione come servizio su x64. Ha anche una dipendenza dal libevent per il quale posso ottenere solo una versione compilata Win32.

Sospetto che semplicemente caricare tutto questo in C ++ e premere "compile" (per 64 bit) non funzionerebbe, non da ultimo a causa delle complesse differenze nelle architetture a 32 e 64 bit, ma mi chiedo se qualcuno stia lavorando per rimuoverlo il terreno? Sfortunatamente, la mia esperienza risiede solo nel codice gestito (C #), altrimenti proverei a prenderlo su me stesso, ma non posso credere di essere l'unico ragazzo là fuori che cerca di far funzionare memcached su un server Windows a 64 bit .. .. sono io?


Aggiornare

Sì, temo di essere ancora alla ricerca di una risposta a questo - tutti i miei sforzi (con le mie patetiche abilità C ++) per realizzare una build stabile sono falliti - ho distrutto un server e 3 VM lo stanno provando, quindi ora rivolgiti ai veri esperti. Qualcuno ha intenzione di portarlo a 64 bit? O mi stai davvero suggerendo di usare MS Velocity? Rabbrividisco al pensiero.


Aggiornamento: @Lars - In realtà uso Enyim - è molto buono, ma ciò a cui ti riferisci è un client, piuttosto che la parte server.

@DannySmurf - Sono stato in grado di installarlo come servizio solo su un sistema operativo a 32 bit. Il sistema operativo a 64 bit rifiuta l'installazione di questo servizio Win32. Ovviamente sì, un sacco di codice Win32 funziona perfettamente su architettura x64, quindi puoi eseguire app a 32 bit (come Office ad esempio) o giochi su Vista / XP 64 ecc., Ma questo non si traduce direttamente quando si tratta di servizi. Non sono un esperto, sospetto che abbia a che fare con le sincronizzazioni o con gli eventi a cui i servizi devono iscriversi e sospetto che 64 e 32 non funzionino bene. Sono felice di essere corretto su tutto questo, ma per rispondere alla tua domanda - sì, ho provato.

@OJ - grazie mille per la risposta diretta. Lo pensavo, ma non ero sicuro che qualcun altro avesse suggerimenti o avesse già intrapreso questa strada. Forse quando StackOverflow è LIVE, più persone risponderanno e mi faranno sapere se si tratta di qualcosa che viene esaminato, e anche se posso provare a compilarlo da solo, semplicemente non posso "fidarmi" (con il mio livello di esperienza C ++) che fornirebbe l'affidabilità di "livello aziendale" in un componente così cruciale di soluzioni scalabili di grandi dimensioni. Penso che sarebbe necessario un intervento istruito piuttosto che il mio approccio sperimentale non igienizzato prima di poter essere sicuro. Una piccola svista da parte mia, potrebbe far crollare il sito. Oh beh ... alla prossima volta.


Quale errore si verifica quando si tenta di registrare il servizio? Ho installato diversi servizi sviluppati a 32 bit, in ambienti a 64 bit e non ho mai avuto problemi. Prova ad aprire una riga di comando a 32 bit e registra il servizio utilizzando il programma sc.exe
lsalamon

Risposte:


52

I laboratori North Scale hanno rilasciato una build di memcached 1.4.4 per Windows x64:

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

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

AGGIORNAMENTO: hanno recentemente rilasciato Memcached Server - ancora GRATUITO ma una distribuzione migliorata con clustering, interfaccia utente di amministrazione / statistica basata sul web ecc. (Non sono in alcun modo correlato a loro) Controllalo su http://northscale.com/ products / memcached.html e scaricalo da: http://www.northscale.com/download.php?a=d

AGGIORNAMENTO 2: NorthScale Memcached non è più disponibile come download autonomo. Ora lo hanno reso parte della loro offerta commerciale No-SQL DB chiamata Membase. Può essere configurato per funzionare in modalità solo Memcached (cioè senza persistenza) e c'è anche una versione gratuita al 100%. Dai un'occhiata qui: http://www.membase.org/downloads

AGGIORNAMENTO 3: MemBase ha dormito con CouchDB e ha prodotto un'offerta di prodotti ibridi, chiamata CouchBase. Offrono ancora una versione "Community" gratuita su http://www.couchbase.com/download


3
Non ho un rappresentante da modificare, ma il primo collegamento qui non è attualmente corretto; è necessario un trattino tra 64 e bit: blog.northscale.com/northscale-blog/2009/12/…
Maggie

22
Il link per il download funziona ancora: s3.amazonaws.com/downloads.northscale.com/…
IEnumerator

Come posso configurare il server memcached utilizzando la riga di comando per Windows? Ho provato il collegamento codeproject.com/Articles/96698/… . Ma non posso configurare.
Naren

25

Solo così la gente sa, la versione a 32 e 64 bit creata dalle brave persone di membase / couchbase / qualunque cosa sia ancora disponibile l'URL del blog è cambiato però:

Binario a 32 bit di memcached 1.4.4 come servizio 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 a 64 bit di memcached 1.4.4 come servizio 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 versione a 64 bit ha il tempo di attività sbagliato.

Quindi forse vuoi invece questo binario di 1.4.2:

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

La versione a 32 bit inclusa con MemCacheDManager supporta anche l'esecuzione su Windows 2000 (no 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

Per decomprimere l'msi:

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


Couchbase sembra ora spingere un approccio diverso couchbase.com/memcached
Mike Gifford

6

Il binario Memcached 1.4.5 per win x64 può essere trovato qui: http://downloads.northscale.com/memcached-1.4.5-amd64.zip

Un'altra opzione sarebbe installare Couchbase Server 1.8.0 x64 da qui: http://www.couchbase.com/download , il memcached in bundle sembra essere la versione 1.7.1.1 (suona come una versione interna, non posso dire quale è quello vero)

Per quanto riguarda l'esecuzione di memcached come servizio, questo tutorial potrebbe essere sufficiente:

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


6

Binari aggiornati

NorthScale ha versioni molto vecchie (la più recente è 1.4.5 che è dell'aprile 2010) ma c'è un ragazzo che offre binari Memcached a 64 bit per Windows compilati usando Cygwin (ma non richiedono che sia installato) nel suo repository GitHub github. com / nono303 / memcached .

Ad esempio, i binari della versione rilasciata più di recente (al momento della stesura di questa risposta) 1.5.16 sono qui . Esistono versioni a 32 e 64 bit.

Memcached come servizio Windows

Se vuoi installarlo come servizio Windows, puoi utilizzare ad esempio il gestore del servizio non succhiante open source :

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

Vedere la documentazione per i dettagli.


3

Personalmente ritengo che dovresti ricompilare l'applicazione utilizzando un compilatore a 64 bit (ovviamente su una macchina a 64 bit) per ottenere il massimo da Memcached su una piattaforma a 64 bit. Questo potrebbe non essere un compito facile a seconda del codice. Se è stato scritto pensando alla portabilità a 64 bit, potrebbe essere una semplice ricompilazione. Se non lo è, allora potresti essere pronto per un bel po 'di patch prima di farlo costruire .. e poi dovresti verificare di non aver rotto nulla!

Non credo che tu stia affatto sopravvalutando le differenze tra 32 e 64 bit. Un errore comune è presumere che il lavoro sia una semplice ricompilazione quando in realtà non lo è. Ci sono più problemi di portabilità di quanto la maggior parte delle persone realizzi. Solo perché l'applicazione viene compilata e si finisce con un binario, non significa che il binario si comporterà come dovrebbe. Soprattutto quando può interagire con altro codice a 32 bit.

Detto questo, potrebbe valere la pena provarlo!

In bocca al lupo. Saluti!


@ Lars: consiglio di leggere la domanda prima di tentare una risposta.

@John Sibly & @DannySmurf: data la natura di Memcached e ciò che mira a ottenere, sicuramente non vorreste eseguire una versione a 32 bit su una macchina a 64 bit? Se avessi una macchina con capacità a 64 bit, avrebbe senso eseguire una versione a 64 bit per sfruttare al massimo le funzionalità dell'hardware.


3

Ho un memcached-1.2.1 per win32 originariamente scaricato da qui: http://jehiah.cz/projects/memcached-win32/ (ma ora per qualche motivo è un collegamento interrotto).

È così che sono riuscito a eseguire memcached per Win32 su Windows Server 2008 R2, 64 bit. memcached.exe -> proprietà -> Compatibilità -> Esegui questo programma in modalità compatibilità per: Windows XP (SP 3) . Si noti che l'utente Uriel Katz menziona in questa discussione che questo metodo si limita a 2 GB di memoria d'uso.


2

Stavo solo cercando memcached su un sistema Windows a 64 bit e ho trovato questo. Finora non esiste alcuna versione memcached di Win64. Ma ho appena avviato memcached.exe con i comandi appropriati tramite cmd e funziona perfettamente. Sto usando Windows Vista 64bit, non so se ci sono differenze tra Vista e le versioni server.

Cordiali saluti Fleshgrinder


Grazie per questo - avviarlo da cmd non era il problema - installarlo come servizio era il problema. saluti, Rob G
RobertTheGrey

1

Amico, Codeplex è tuo amico -> dai un'occhiata a questo porting . Aveva una versione a 64 bit, ma puoi scaricare l'ultima e compilare per 64 bit (abbastanza facile) o controllare le versioni precedenti.


1
Ciao Pure.Krome, grazie per le informazioni ma ho visto questa pagina e non ho mai visto la versione server a 64 bit. E no - come per la risposta di OJ sopra, non puoi semplicemente compilare "facilmente" a 64 bit a meno che il codice non sia stato scritto in questo modo, e lavorare con la memoria è sempre un brutto posto per testare quella teoria ...
RobertTheGrey

hmm. ahh -> il bit x64 era la versione BETA, quindi è stato sostituito da alcuni aggiornamenti più recenti. è stato trovato qui: codeplex.com/memcachedproviders/Release/…
Pure.Krome,

1

La versione a 32 bit funziona a 64 bit tramite WOW64 ma il processo è ancora limitato a 2 GB, con una versione a 64 bit puoi andare oltre a più di una singola macchina.


0

Sei sicuro che la versione a 32 bit non funzioni solo su Windows a 64 bit, senza modifiche? La maggior parte delle cose lo fanno.

In caso contrario, hai effettivamente provato a compilarlo per 64 bit? Una breve scansione di alcuni gruppi di Google ecc. In cui le persone hanno posto la stessa domanda suggerisce che questa potrebbe essere esattamente la soluzione a questo. Penso che probabilmente stai sovrastimando la differenza tra Windows a 32 bit e 64 bit (almeno per quanto riguarda la compilazione di un'applicazione nativa).


0

Cordiali saluti, non sono riuscito a ottenere la versione a 64 bit (da qui http://labs.northscale.com/memcached-packages/ ) da installare come servizio finché non ho eseguito memcached come amministratore.

Sono appena andato alle proprietà dell'eseguibile, quindi alla scheda Compatibilità e ho selezionato "Esegui questo programma come amministratore" (Ci sono molti altri modi per farlo, ma sembrava il più semplice)

Poi sono stato finalmente in grado di eseguire con successo: memcached -d install

Non dimenticare di avviare il servizio anche dopo che è stato installato :)


0

È sempre possibile eseguire più istanze di processi memcache a 32 bit su una scatola, consentendo a quella macchina di servire un totale di> 2 GB di spazio memcache.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.