2012-02-14 4 views
1

Мы получаем очень интересный график в нашей архитектуре Redis.Мастер Redis запускает еще несколько команд, чем подчиненный Redis

redis commands

  • Зеленый: мастер
  • Синий: ведомое

Похоже мастера Redis выполняется команда 35% больше команд чем ведомого Redis.

Это не всегда такое же расстояние.

Вот часть лога активного сервера Redis:

[26911] 14 Feb 13:28:44 - DB 0: 2399 keys (417 volatile) in 16384 slots HT. 
[26911] 14 Feb 13:28:44 - DB 1: 498 keys (498 volatile) in 1024 slots HT. 
[26911] 14 Feb 13:28:44 - DB 2: 1 keys (0 volatile) in 4 slots HT. 
[26911] 14 Feb 13:28:44 - 706 clients connected (1 slaves), 33794240 bytes in use 

и в то же время на мази:

[17748] 14 Feb 13:28:44 - DB 0: 2398 keys (417 volatile) in 16384 slots HT. 
[17748] 14 Feb 13:28:44 - DB 1: 497 keys (497 volatile) in 1024 slots HT. 
[17748] 14 Feb 13:28:44 - DB 2: 1 keys (0 volatile) in 4 slots HT. 
[17748] 14 Feb 13:28:44 - 1 clients connected (0 slaves), 24839792 bytes in use 

Так они выглядят, как они почти 1: 1 синхронизированы ,

Мы задаемся вопросом, что может быть причиной этого пробела. Также мы спрашиваем себя, если это означает, что есть лишние команды, отправленные Redis, которые мы можем оптимизировать.

+1

Любые команды чтения не будут распространяться на подчиненный, я думаю. Вы только пишете мастеру и читаете от рабыни? Если вы читаете/записываете мастеру, а не читаете от подчиненного устройства, это объясняет это. –

+0

ouch! .. хорошая точка .. вы можете добавить свой комментарий в качестве ответа, чтобы люди (и меня) могли превратить его как правильный. – fguillen

+0

Я добавил его в качестве ответа для дальнейшего использования. Пожалуйста, примите его, если это было к вашему удовлетворению! :-) –

ответ

2

Вот возможное объяснение: total_commands_processed сообщает все команды, команды чтения, записи и связанные с сервером команды. Только команды записи будут передаваться ведомым устройствам.

В настройке, где вы только пишете мастеру и читаете от ведомого устройства, у вас будет более высокий total_commands_processed на ведомом устройстве (все читает + все записи).

Если вы пишете и читаете от ведущего устройства и сохраняете ведомое устройство как резервное копирование или сохраняетесь на диске, мастер будет иметь более высокий total_commands_processed.

На самом деле, очень маловероятно, что ведущий и ведомый будут иметь одинаковое количество total_commands_processed.

+0

У вас есть точка здесь !, мы _write/read_ always _to/from_ сервера 'master'. Если никто не скажет что-то еще, я проверю это. – fguillen

+0

В этом случае у вас действительно будет больше 'total_commands_processed' на' master', так как '(пишет + читает)> пишет'. –

Смежные вопросы