k Я разобрался с некоторыми вещами ..
1) МОЖЕТ быть разумным иметь сотни / тысячи сокетов, подключенных к memcached, предполагая, что вы используете библиотеку, которая использует epoll или что-то еще - однако, если вы используете ruby, как я, я не знаю о lib который использует что-то еще, кроме select () или poll () - поэтому этот вопрос сразу возникает / хочет исчезнуть
2) если вы похожи на меня, у вас есть только 1 сервер memcached, работающий прямо сейчас, и пара ублюдков / прогонщиков, бегающих вокруг, заботящихся о запросах .. поэтому ваши соединения с memcache должны проверяться. быть не больше, чем количество монгрелей / тин, которые вы используете (при условии, что вы кэшируете только 1 или два набора вещей) - в моем случае
вот исправление:
настраивает memcache через memcached gem, а не через merb :: cache (который фактически оборачивает любую используемую вами библиотеку memcache *
MMCACHE = Memcached.new("localhost:11211")
получить / установить ваши значения:
@cache = MMCACHE.clone
begin
@hand_xml = @cache.get("/hands/#{@hand.id}.xml")
rescue
@hand_xml = display(@hand)
@cache.set("/hands/#{@hand.id}.xml", @hand_xml)
end
@cache.quit
Сядьте и выпейте простуду, когда вы делаете это:
lsof | grep 11211 | wc -l
вы видите что-то вроде 2 или 3 вместо 2036!
указывает на то, что мне подсказывает, что соединения memcache часто начинаются с