Я использовал redis только с опцией RDB. Он использовал 2 ГБ памяти. Когда он разветвлялся, он использовал около 10 секунд, чтобы полностью сохранить файл. Когда я проверял сайт redis.io, я обнаружил статистику задержки:
- Linux beefy VM on VMware 6.0GB RSS forked in 77 milliseconds (12.8 milliseconds per GB).
- Linux running on physical machine (Unknown HW) 6.1GB RSS forked in 80 milliseconds (13.1 milliseconds per GB)
- Linux running on physical machine (Xeon @ 2.27Ghz) 6.9GB RSS forked into 62 millisecodns (9 milliseconds per GB).
- Linux VM on 6sync (KVM) 360 MB RSS forked in 8.2 milliseconds (23.3 millisecond per GB).
- Linux VM on EC2 (Xen) 6.1GB RSS forked in 1460 milliseconds (239.3 milliseconds per GB).
- Linux VM on Linode (Xen) 0.9GBRSS forked into 382 millisecodns (424 milliseconds per GB).
Я использовал выделенные серверные машины Xeon E3-1240. Сравните с этими результатами выше, для экономии потребовалось гораздо больше времени. Это потому, что все мои ключи - хеш-коды? Что мне делать, чтобы уменьшить задержку и уменьшить влияние на основной процесс Redis для запросов?
из Redis ИНФОРМАЦИЯ На выходе соответствующие показатели для времени разветвления и сохранения на диск:
rdb_last_bgsave_time_sec:0
latest_fork_usec:545
В redis.io заметки говорят о время вилки, а не время, необходимое для полного сохранения файла на диске.
Время, необходимое для полного сохранения на диске, зависит от скорости как вашего процессора, так и самого хранилища (диска или дисков). Вам нужно посмотреть на vmstat или iostat вывод (при условии, что вы используете Linux). В случае автора это все-таки 2ГБ для хранения на диске ... Хешированные ключи или нет, не играет роли. Однако хеширование обычно является хорошим выбором для большего объема памяти.
Время сохранения на диск может иметь мало или очень большое значение ... это зависит от того, насколько сильно влияет на ваш процесс Redis во время процесса сохранения на диск.
Но опять же; обратите внимание, что время вилки обычно в чем заключается настоящая проблема, даже если это миллисекунды, именно тогда задержка обычно бывает, так как блокируется при (кратком) копировании памяти. Фактическое сохранение на диск, как я уже сказал, может или не может быть тем, о чем вам вообще нужно беспокоиться. Это выполняется в фоновом потоке.