Re[2]: nginx и несколько memcached серверов

Михаил Монашёв postmaster на softsearch.ru
Вт Мар 23 22:31:44 MSK 2010


Здравствуйте, mente.

m> nginx по умолчанию использует остаток от деления?
m> Или все тот же memcached_hash, но с дефолтными опциями?
m> Пробовал без ketama_points в memcached_hash и
m> OPT_LIBKETAMA_COMPATIBLE ставил на false, результат был 40% не
m> найдено.
m> Не сильно изменилось :-/.
m> Есть подозрение, что memcached_hash вообще не работает, т.к.
m> если убрать эту опцию, то процент промахов тот же.

Он  прекрасно  работает, во всяком случае у меня на nginx 0.6.31 . Оба
его   алгоритма   распределения  ключей  совпадают  с  алгоритмом  для
перлового    модуля   Cache::Memcached::Fast.   Распределение   ключей
алгоритмом,  основанном  на  остатке от деления, полностью совпадает с
распределение,    которое    даёт   оригинальный   клиентский   модуль
разработчиков мемкешеда Cache::Memcached.
  
Без опции работает балансер, который ходит по ВСЕМ мемкешедам, пока не
найдёт  нужный  ключ  или  не  кончатся  бэкенды.  Если  у Вас процент
промахов тот же, то попробуйте telnet-ом сходит к мемкешеду, может там
с  таким  ключом  ни на одном бэкенде нет ничего, ибо процент промахов
должен стать равен 0%.

Я  бы  смотрел  или  в  сторону  патчинга  пхп-клиента  или  в сторону
добавления   в   memcached_hash  ещё  одного  алгоритма  балансировки,
совместимого с php. Стало бы что-то вроде:

 upstream memcached_upstream{
      memcached_hash ketama_points=100;
      server a.com:21201 weight=1;
      server b.com:21201 weight=1;
 }

Сделать это наверное не сложно, ибо базой для него станет один из
текущих алгоритмов.

Ещё  можно  написать  в  лист  http://list.openhack.ru/Lists/talk/   и
попросить  Томаша  или  принять  Ваш  патч с новым балансировщиком или
попросить  написать  его  самому,  указав  на  описание  алгоритма   в
php-клиенте.

-- 

С уважением,
Михаил Монашёв
mailto:postmaster at softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.




Подробная информация о списке рассылки nginx-ru