Czy mogę uruchomić Memcached w 64-bitowym środowisku Windows (x64)?

87

Czy ktoś wie, IF , KIEDY lub JAK mogę dostać Memcached działa na 64-bitowym środowisku systemu Windows?

Konfiguruję nowe rozwiązanie hostingowe i zdecydowanie wolałbym uruchomić 64-bitowy system operacyjny, a ponieważ jest to rozwiązanie ASP.Net MVC z SQL Server DB, systemem operacyjnym będzie Windows Server 2003 lub (miejmy nadzieję!) 2008.

Wiem, że może to przerodzić się w debatę dotyczącą 32-bitowego kontra 64-bitowego na serwerach, ale powiedzmy tylko, że preferuję 64-bitowy i mam kilka bardzo dobrych powodów.

Do tej pory próbowałem kilka opcji i znaleźć trochę o pomoc związaną z coraz to up na komputerze 32-bitowym (i udało dodam), ale ponieważ oryginalny portu systemu Windows jest Win32 konkretne, to trudno będzie pomoc podczas instalowania jako usługa na x64. Ma również zależność od libevent, dla którego mogę uzyskać tylko skompilowaną wersję Win32.

Podejrzewam, że po prostu załadowanie tego wszystkiego w C ++ i naciśnięcie "kompiluj" (dla 64-bitowego) nie zadziała, nie tylko z powodu skomplikowanych różnic w architekturach 32 i 64-bitowych, ale zastanawiam się, czy ktoś pracuje nad tym Ziemia? Niestety, moja wiedza obejmuje tylko kod zarządzany (C #), w przeciwnym razie spróbuję wziąć to na siebie, ale nie mogę uwierzyć, że jestem jedynym facetem, który próbuje uruchomić memcached na 64-bitowym serwerze Windows. ..Jestem?


Aktualizacja

Tak, obawiam się, że wciąż szukam odpowiedzi na to pytanie - wszystkie moje wysiłki (z moimi żałosnymi umiejętnościami C ++), aby stworzyć stabilną kompilację, zawiodły - zniszczyłem jeden serwer, a 3 maszyny wirtualne właśnie go wypróbowuję, więc teraz zwróć się do prawdziwych ekspertów. Czy ktoś planuje przeniesienie tego na 64-bitowy? A może naprawdę sugerujesz, żebym zamiast tego używał MS Velocity? Wzdrygam się na tę myśl.


Aktualizacja: @Lars - właściwie używam Enyima - jest bardzo dobry, ale mówisz o kliencie, a nie o części serwerowej.

@DannySmurf - mogłem zainstalować go tylko jako usługę na 32-bitowym systemie operacyjnym. 64-bitowy system operacyjny odrzuca instalację tej usługi Win32. Oczywiście tak, wiele kodu Win32 działa bezproblemowo na architekturze x64, dlatego można uruchamiać aplikacje 32-bitowe (na przykład Office) lub gry na Vista / XP 64 itp., Ale nie przekłada się to bezpośrednio na usługi. Nie jestem ekspertem, podejrzewam, że ma to związek z synchronizacjami lub zdarzeniami, że usługi muszą subskrybować, i podejrzewam, że 64 i 32 nie grają ładnie. Cieszę się, że w każdej z tych kwestii poprawiono mnie, ale odpowiadając na Twoje pytanie - tak, próbowałem.

@OJ - bardzo dziękuję za bezpośrednią odpowiedź. Tak myślałem, ale nie byłem pewien, czy ktoś inny ma jakieś sugestie, czy już przeszedł tą drogą. Może kiedy StackOverflow będzie LIVE, wtedy więcej ludzi odpowie i dadzą mi znać, czy to jest coś, co jest przedmiotem zainteresowania, i chociaż mogę spróbować skompilować to sam - po prostu nie mogę "ufać" (z moim poziomem doświadczenia C ++) zapewniłby niezawodność na poziomie przedsiębiorstwa w tak kluczowym elemencie dużych, skalowalnych rozwiązań. Myślę, że wymagałoby to raczej wyedukowanej interwencji niż mojego nieoczyszczonego podejścia eksperymentalnego, zanim będę mógł być pewny siebie. Jedno małe niedopatrzenie z mojej strony może spowodować wyłączenie witryny. No cóż ... do następnego razu.

RobertTheGrey
źródło
Który błąd występuje podczas próby zarejestrowania usługi? Zainstalowałem kilka usług opracowanych w środowisku 32-bitowym, w środowiskach 64-bitowych i nigdy nie miałem problemów. Spróbuj otworzyć wiersz poleceń w wersji 32-bitowej i zarejestruj usługę za pomocą programu sc.exe
lsalamon

Odpowiedzi:

52

Laboratoria North Scale opublikowały kompilację memcached 1.4.4 dla systemu Windows x64:

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

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

AKTUALIZACJA: niedawno wydali Memcached Server - wciąż DARMOWY, ale ulepszoną dystrybucję z klastrowaniem, interfejsem administratora / statystykami itp. (Nie jestem z nimi w żaden sposób powiązany) Sprawdź to na http://northscale.com/ products / memcached.html i pobierz pod adresem : http://www.northscale.com/download.php?a=d

UPDATE 2: NorthScale Memcached nie jest już dostępne jako samodzielny plik do pobrania. Teraz uczynili to częścią swojej komercyjnej oferty baz danych No-SQL o nazwie Membase. Można go skonfigurować tak, aby działał tylko w trybie Memcached (tj. Bez trwałości), a także jest w 100% darmowa. Sprawdź to tutaj: http://www.membase.org/downloads

UPDATE 3: MemBase przespał się z CouchDB i stworzył ofertę produktów hybrydowych o nazwie CouchBase. Nadal oferują bezpłatną wersję „Społeczność” pod adresem http://www.couchbase.com/download

zvolkov
źródło
3
Nie mam przedstawiciela do edycji, ale pierwszy link tutaj nie jest obecnie poprawny; potrzebny jest łącznik między wersją
Maggie
22
Link do pobrania nadal działa: s3.amazonaws.com/downloads.northscale.com/…
IEnumerator
Jak mogę skonfigurować serwer memcached przy użyciu wiersza poleceń dla systemu Windows? Wypróbowałem link codeproject.com/Articles/96698/… . Ale nie mogę skonfigurować.
Naren
25

Aby ludzie wiedzieli, wersja 32-bitowa i 64-bitowa, zbudowana przez dobrych ludzi z membase / couchbase / cokolwiek jest nadal dostępne, zmienił się adres URL bloga:

32-bitowy plik binarny memcached 1.4.4 jako usługa 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

64-bitowy plik binarny memcached 1.4.4 jako usługa 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

Wersja 64-bitowa ma nieprawidłowy czas pracy.

Więc może chcesz zamiast tego ten plik binarny 1.4.2:

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

Wersja 32-bitowa dołączona do MemCacheDManager obsługuje również działanie w systemie Windows 2000 (bez 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

Aby rozpakować msi:

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

Lennie
źródło
Wygląda na to, że Couchbase naciska teraz na inne podejście couchbase.com/memcached
Mike Gifford
6

Plik binarny Memcached 1.4.5 dla win x64 można znaleźć tutaj: http://downloads.northscale.com/memcached-1.4.5-amd64.zip

Inną opcją byłoby zainstalowanie Couchbase Server 1.8.0 x64 stąd: http://www.couchbase.com/download , dołączona wersja memcached wydaje się być wersją 1.7.1.1 (brzmi jak wersja wewnętrzna, nie mogę powiedzieć, która jest prawdziwy)

Jeśli chodzi o uruchamianie memcached jako usługi, ten samouczek może wystarczyć:

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

alexandrul
źródło
6

Aktualne pliki binarne

NorthScale ma naprawdę stare wersje (najnowsza to 1.4.5, która pochodzi z kwietnia 2010 r.), Ale jest facet, który oferuje 64-bitowe pliki binarne Memcached dla Windows skompilowane przy użyciu Cygwin (ale nie wymagają instalacji) w swoim repozytorium GitHub na githubie. com / nono303 / memcached .

Na przykład pliki binarne najnowszej wersji (w momencie pisania tej odpowiedzi) 1.5.16 są tutaj . Istnieją wersje 32-bitowe i 64-bitowe.

Memcached jako usługa systemu Windows

Jeśli chcesz zainstalować go jako usługę systemu Windows, możesz użyć na przykład Non-Sucking Service Manager typu open source :

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

Szczegółowe informacje można znaleźć w dokumentacji .

David Ferenczy Rogožan
źródło
3

Osobiście uważam, że musiałbyś ponownie skompilować aplikację przy użyciu 64-bitowego kompilatora (oczywiście na komputerze 64-bitowym), aby w pełni wykorzystać Memcached na platformie 64-bitowej. W zależności od kodu może to nie być łatwe. Gdyby został napisany z myślą o przenośności 64-bitowej, może to być prosta rekompilacja. Jeśli tak się nie stało, możesz być gotowy na trochę łatania, zanim zaczniesz go budować ... a potem będziesz musiał sprawdzić, czy nic nie zepsułeś!

Nie sądzę, żebyś w ogóle przeceniał różnice między wersjami 32- i 64-bitowymi. Częstym błędem jest zakładanie, że praca jest prostą rekompilacją, podczas gdy w rzeczywistości tak nie jest. Istnieje więcej problemów z przenoszeniem, niż większość ludzi zdaje sobie sprawę. Tylko dlatego, że aplikacja się buduje i otrzymujesz plik binarny, nie oznacza to, że plik binarny będzie zachowywał się tak, jak powinien. Zwłaszcza gdy może współdziałać z innym 32-bitowym kodem.

Powiedziawszy to, może warto spróbować!

Powodzenia. Twoje zdrowie!


@Lars: Zalecam przeczytanie pytania przed próbą odpowiedzi.

@John Sibly & @DannySmurf: biorąc pod uwagę charakter Memcached i cel, jaki ma on osiągnąć, z pewnością nie chciałbyś uruchamiać wersji 32-bitowej na maszynie 64-bitowej? Gdybyś miał maszynę obsługującą 64-bit, sensowne byłoby uruchomienie wersji 64-bitowej, aby w pełni wykorzystać funkcje sprzętu.

Dz.U.
źródło
3

Mam memcached-1.2.1 dla win32 oryginalnie pobrany stąd: http://jehiah.cz/projects/memcached-win32/ (ale teraz z jakiegoś powodu jest to uszkodzony link).

W ten sposób udało mi się uruchomić memcached dla Win32 na Windows Server 2008 R2 w wersji 64-bitowej. memcached.exe -> właściwości -> Zgodność -> Uruchom ten program w trybie zgodności dla: Windows XP (SP 3) . Zauważ, że użytkownik Uriel Katz wspomniał w tej dyskusji, że ta metoda jest ograniczona do 2 GB pamięci.

jim77
źródło
2

Właśnie szukałem memcached w 64-bitowym systemie Windows i znalazłem to. Jak dotąd nie ma żadnej wersji memcached na Win64. Ale właśnie uruchomiłem memcached.exe z odpowiednimi poleceniami za pośrednictwem cmd i działa dobrze. Używam 64-bitowego systemu Windows Vista, nie wiem, czy są jakieś różnice między wersjami Vista i serwerowymi.

Z poważaniem Fleshgrinder


źródło
Dzięki za to - uruchomienie go z cmd nie było problemem - zainstalowanie go jako usługi było problemem. pozdrowienia, Rob G
RobertTheGrey
1

Stary, Codeplex to twój przyjaciel -> sprawdź ten port . Kiedyś miał wersję 64-bitową, ale możesz pobrać najnowszą wersję i skompilować ją do wersji 64-bitowej (całkiem łatwe) lub sprawdzić poprzednie wydania.

Pure.Krome
źródło
1
Cześć Pure.Krome, dzięki za informację, ale widziałem tę stronę i nigdy nie widziałem 64-bitowej wersji serwera. I nie - zgodnie z powyższą odpowiedzią OJ, nie można po prostu „łatwo” skompilować do wersji 64-bitowej, chyba że kod został napisany w ten sposób, a praca z pamięcią jest zawsze złym miejscem do testowania tej teorii ...
RobertTheGrey
hmm. ahh -> bit x64 był wersją BETA, więc został zastąpiony przez kilka nowszych aktualizacji. znaleziono tutaj: codeplex.com/memcachedproviders/Release/…
Pure.Krome
1

Wersja 32-bitowa działa na 64 bitach przez WOW64, ale proces jest nadal ograniczony do 2 GB, z wersją 64-bitową można wyjść poza to do więcej niż jednej maszyny.

Uriel Katz
źródło
0

Czy jesteś pewien, że wersja 32-bitowa działa nie tylko w 64-bitowym systemie Windows bez modyfikacji? Większość rzeczy tak się dzieje.

Jeśli to się nie powiedzie, czy faktycznie próbowałeś skompilować go tylko dla wersji 64-bitowej? Krótki przegląd kilku Grup dyskusyjnych Google itp., W których ludzie zadawali to samo pytanie, sugeruje, że może to być dokładnie rozwiązanie tego problemu. Myślę, że prawdopodobnie przeceniasz różnicę między 32-bitowym i 64-bitowym systemem Windows (przynajmniej jeśli chodzi o kompilację natywnej aplikacji).

Smerf
źródło
0

FYI, nie mogłem pobrać wersji 64-bitowej (stąd http://labs.northscale.com/memcached-packages/ ) do zainstalowania jako usługi, dopóki nie uruchomiłem memcached jako administrator.

Po prostu przeszedłem do właściwości pliku wykonywalnego, a następnie do zakładki Zgodność i zaznaczyłem „Uruchom ten program jako administrator” (Jest mnóstwo innych sposobów na zrobienie tego, ale wydawało się to najprostsze)

W końcu udało mi się pomyślnie uruchomić: memcached -d install

Nie zapomnij uruchomić usługi również po jej zainstalowaniu :)

Jasper Rosenberg
źródło
0

Zawsze można było uruchamiać wiele instancji 32-bitowych procesów memcached na jednym urządzeniu, dzięki czemu maszyna może obsłużyć łącznie> 2 GB miejsca w pamięci podręcznej.

Rozpoznać
źródło