2

Мои два узла в кластере Redis имеют довольно разную производительность персистентности. Главный узел всегда намного быстрее, чем подчиненный, при сохранении данных на диск. Вот информация о постоянстве для мастера:

[fred@redis_master temp]$ redis-cli -h 192.168.1.151 -p 8382
192.168.1.151:8382> info persistence
# Persistence
loading:0
rdb_changes_since_last_save:1206
rdb_bgsave_in_progress:0
rdb_last_save_time:1529636130
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:28
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
192.168.1.151:8382>

И ниже информация для раба:

[fred@redis_slave temp]$ redis-cli -h 192.168.2.151 -p 8381
192.168.2.151:8381> info persistence
# Persistence
loading:0
rdb_changes_since_last_save:4850
rdb_bgsave_in_progress:0
rdb_last_save_time:1529635749
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:50
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
192.168.2.151:8381>

Видно, что мастер потратил 28 секунд на "rdb_last_bgsave_time_sec", в то время как подчиненный потратил 50 секунд, что действительно замедляет работу подчиненного узла. Я подозреваю, что это скорее всего связано с производительностью жесткого диска, поэтому я провел следующие тесты:

[fred@redis_master temp]$ time dd if=/dev/zero of=test.dbf bs=8k count=5000 oflag=direct
5000+0 records in
5000+0 records out
40960000 bytes (41 MB) copied, 0.329285 s, 124 MB/s

real    0m0.331s
user    0m0.006s
sys 0m0.119s

[fred@redis_slave temp]$ time dd if=/dev/zero of=test.dbf bs=8k count=5000 oflag=direct
5000+0 records in
5000+0 records out
40960000 bytes (41 MB) copied, 88.126 s, 465 kB/s

real    1m28.127s
user    0m0.008s
sys 0m0.210s

Очевидно, что ведомый потратил значительно больше времени, чем мастер, чтобы создать файл размером всего 41 МБ. Могу ли я просто заключить, что медленное сохранение на подчиненном узле полностью связано с плохим жестким диском? Есть ли другой, более эффективный способ отладки этой проблемы с постоянством?

Я буду признателен, если кто-то может помочь.

0