Могу ли я запустить Memcached в 64-битной среде Windows (x64)?

StackOverflow https://stackoverflow.com/questions/8896

Вопрос

Кто-нибудь знает ЕСЛИ, КОГДА или КАК я могу получить Мемкеш работает в 64-битной среде Windows?

Я настраиваю новое решение для хостинга и предпочитаю использовать 64-битную ОС, а поскольку это решение ASP.Net MVC с базой данных SQL Server, то ОС будет либо Windows Server 2003, либо (будем надеяться!) 2008.

Я знаю, что это может перерасти в дебаты о 32-битной и 64-битной версиях на серверах, но давайте просто скажем, что я предпочитаю 64-битную версию и у меня есть некоторые очень хороший причины.

На данный момент я попробовал несколько вариантов и нашел кусочек из помощь связано с запуском этого процесса на 32-битной машине (и я мог бы добавить, что это удалось), но поскольку оригинал Порт Windows специфичен для Win32, это вряд ли поможет при установке в качестве службы на x64.Он также имеет зависимость от libevent для чего я могу получить только скомпилированную версию Win32.

Я подозреваю, что просто загрузить все это на C++ и нажать «компилировать» (для 64-битной версии) не получится, не в последнюю очередь из-за сложных различий в 32- и 64-битной архитектурах, но мне интересно, работает ли кто-нибудь над этим? земля?К сожалению, я специализируюсь только на управляемом коде (C#), иначе я бы попытался взять это на себя, но не могу поверить, что я единственный парень, пытающийся получить кэширование памяти работаю на 64-битном сервере Windows... я??

Любая помощь или рекомендации приветствуются...


Обновлять

Да, боюсь, я все еще ищу ответ на этот вопрос - все мои усилия (с моими жалкими навыками C++) по созданию стабильной сборки потерпели неудачу - я уничтожил один сервер, а три виртуальные машины только что попробовали, так что теперь я обратитесь к настоящим специалистам.Кто-нибудь планирует портировать это на 64бит?Или вы действительно предлагаете мне вместо этого использовать MS Velocity?Я вздрагиваю от этой мысли...


Обновлять:@Lars - На самом деле я использую Enyim - это очень хорошо, но вы имеете в виду клиентскую, а не серверную часть.

@DannySmurf - мне удалось установить его как службу только в 32-битной ОС.64-разрядная ОС отклоняет установку этой службы Win32.Конечно, да, большая часть кода Win32 без проблем работает на архитектуре x64, поэтому вы можете запускать 32-битные приложения (например, Office) или игры на Vista/XP 64 и т. д., но это не применимо напрямую, когда дело касается сервисов.Я не эксперт, я подозреваю, что это связано с синхронизацией или событиями, на которые службы должны подписываться, и я подозреваю, что 64 и 32 работают не очень хорошо.Я рад, если меня поправят, но ответить на ваш вопрос — да, я пытался.

@OJ - большое спасибо за прямой ответ.Я так и думал, но не был уверен, есть ли у кого-нибудь еще предложения или уже пошел по этому пути.Возможно, когда StackOverflow будет ЖИВАТЬ, тогда больше людей ответят и дадут мне знать, рассматривается ли это что-то, и хотя я могу попытаться скомпилировать его сам - я просто не могу «доверять» (с моим уровнем опыта C ++), что это обеспечит надежность «корпоративного уровня» в таком важном компоненте крупных масштабируемых решений.Я думаю, что прежде чем я смогу быть уверенным, потребуется грамотное вмешательство, а не мой необработанный экспериментальный подход.Одна маленькая оплошность с моей стороны может привести к сбою сайта.Ну что ж...до следующего раза...

Это было полезно?

Решение

Лаборатории North Scale выпустили сборку memcached 1.4.4 для Windows x64:

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

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

ОБНОВЛЯТЬ:они недавно выпустили Memcached Server — все еще БЕСПЛАТНЫЙ, но улучшенный дистрибутив с кластеризацией, веб-интерфейсом администратора/статистики и т. д.(Я не имею к ним никакого отношения) Посмотрите на http://northscale.com/products/memcached.html и скачать по адресу: http://www.northscale.com/download.php?a=d

ОБНОВЛЕНИЕ 2:NorthScale Memcached больше не доступен для отдельной загрузки.Теперь они сделали его частью своей коммерческой базы данных No-SQL под названием Membase.Его можно настроить для работы в режиме только Memcached (т.без настойчивости), а также есть 100% бесплатная версия.Проверьте это здесь: http://www.membase.org/downloads

ОБНОВЛЕНИЕ 3:MemBase заключила соглашение с CouchDB и выпустила гибридный продукт под названием CouchBase.Они по-прежнему предлагают бесплатную версию «Сообщества» на http://www.couchbase.com/download

Другие советы

Просто чтобы люди знали, 32-битная и 64-битная версии, созданные хорошими людьми из membase/couchbase/что-то еще, все еще доступны, однако URL-адрес блога изменился:

32-битный двоичный файл memcached 1.4.4 в качестве службы 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-битный двоичный файл memcached 1.4.4 в качестве службы 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

В 64-битной версии указано неправильное время безотказной работы.

Так что, возможно, вам нужен этот двоичный файл 1.4.2:

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

32-разрядная версия, входящая в состав MemCacheDManager, также поддерживает работу в Windows 2000 (без 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

Чтобы распаковать MSI:

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

Бинарный файл Memcached 1.4.5 для Win x64 можно найти здесь: http://downloads.northscale.com/memcached-1.4.5-amd64.zip

Другой вариант — установить Couchbase Server 1.8.0 x64 отсюда: http://www.couchbase.com/download, встроенный memcached, похоже, имеет версию 1.7.1.1 (звучит как внутренняя версия, я не могу сказать, какая из них настоящая)

Что касается запуска memcached как службы, этого руководства может быть достаточно:

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

Лично я считаю, что вам придется перекомпилировать приложение с использованием 64-битного компилятора (очевидно, на 64-битной машине), чтобы максимально эффективно использовать Memcached на 64-битной платформе.Это может оказаться непростой задачей в зависимости от кода.Если бы он был написан с учетом 64-битной переносимости, то это могла бы быть простая перекомпиляция.Если это не так, то вам вполне может потребоваться немало исправлений, прежде чем приступить к сборке.и тогда вам придется убедиться, что вы ничего не сломали!

Я не думаю, что вы вообще переоцениваете разницу между 32 и 64-битной версией.Распространенной ошибкой является предположение, что задача представляет собой простую перекомпиляцию, хотя на самом деле это не так.Существует больше проблем с переносимостью, чем думает большинство людей.Тот факт, что приложение собирается, и в итоге вы получаете двоичный файл, не означает, что двоичный файл будет вести себя так, как должен.Особенно, когда он может взаимодействовать с другим 32-битным кодом.

Сказав это, возможно, стоит попробовать!

Удачи.Ваше здоровье!


@Ларс:Рекомендую прочитать вопрос, прежде чем пытаться ответить.

@Джон Сибли и @DannySmurf:учитывая природу Memcached и цели, которые он преследует, вы наверняка не захотите запускать 32-битную версию на 64-битной машине?Если бы у вас был 64-битный компьютер, имело бы смысл запустить 64-битную версию, чтобы максимально использовать возможности оборудования.

У меня есть memcached-1.2.1 для win32, скачанный отсюда: http://jehiah.cz/projects/memcached-win32/ (но сейчас почему-то ссылка битая).

Вот как мне удалось запустить memcached для Win32 на 64-разрядной версии Windows Server 2008 R2.memcached.exe -> характеристики -> Совместимость -> Запустите эту программу в режиме совместимости для:Windows XP (СП 3).Обратите внимание, что пользователь Уриэль Кац упомянул в этом обсуждении, что использование этого метода ограничено 2 ГБ памяти.

Я просто искал memcached в 64-битной системе Windows и нашел это.Пока не существует версии Memcached для Win64.Но я только что запустил memcached.exe с помощью соответствующих команд через cmd, и он работает нормально.Я использую 64-битную версию Windows Vista, не знаю, есть ли какие-либо различия между Vista и серверной версией.

С уважением Fleshgrinder

Чувак, Кодплекс твой друг -> проверьте этот порт этого.Раньше у него была 64-битная версия, но вы можете либо загрузить последнюю версию и скомпилировать ее для 64-битной версии (довольно просто), либо проверить предыдущие версии.

32-разрядная версия работает на 64-разрядной версии через WOW64, но процесс по-прежнему ограничен 2 ГБ, а в 64-разрядной версии вы можете выйти за рамки этого размера, чтобы иметь больше, чем одна машина.

Вы уверены, что 32-битная версия не работает просто на 64-битной Windows без изменений?Большинство вещей так и есть.

Если это не удалось, вы действительно пытались просто скомпилировать его для 64-битной версии?Краткое сканирование нескольких групп Google и т. д., где люди задавали тот же вопрос, позволяет предположить, что это может быть именно решением этой проблемы.Я думаю, вы, вероятно, переоцениваете разницу между 32-битной и 64-битной Windows (по крайней мере, в том, что касается компиляции собственного приложения).

К вашему сведению, я не смог получить 64-битную версию (отсюда http://labs.northscale.com/memcached-packages/) для установки как службы, пока я не запустил memcached от имени администратора.

Я просто зашел в свойства исполняемого файла, затем на вкладку «Совместимость» и отметил «Запускать эту программу от имени администратора» (есть масса других способов сделать это, но он показался самым простым).

Затем я наконец смог успешно запустить:memcached -d установить

Не забудьте запустить сервис и после его установки :)

Вы всегда можете запустить несколько экземпляров 32-битных процессов memcached на одном компьютере, что позволит этой машине обслуживать в общей сложности > 2 ГБ пространства memcache.

Если это может помочь, я сделал обертку на основе компиляции 64-битной версии memcached 1.4.5, найденной через эта страница (прямая ссылка на двоичный файл NorthScale).

Это служба Windows, и она прекрасно работает в производственной среде:
https://github.com/eric-b/MemcachedService64

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top