Redis RDB настойчивость довольно медленно

363
Andrea Lau

Мои два узла в кластере 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 МБ. Могу ли я просто заключить, что медленное сохранение на подчиненном узле полностью связано с плохим жестким диском? Есть ли другой, более эффективный способ отладки этой проблемы с постоянством?

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

2

0 ответов на вопрос