Существует несколько версий «графиков задержки, которые должен знать каждый», таких как:
Дело в том, что на самом деле задержка не ограничивается. Это сочетание факторов.
Итак, какова задержка сети в центре обработки данных? Задержка, ну я бы сказал, что это «всегда» ниже 1 мс. Это быстрее чем RAM? Нет. Это близко к оперативной памяти? Я так не думаю.
Но остается вопрос, актуально ли это. Это то, что вам нужно знать? Ваш вопрос имеет смысл для меня. Поскольку все имеет свою стоимость, вы должны получить больше оперативной памяти, чтобы все данные могли оставаться в оперативной памяти, или время от времени можно будет читать с диска.
Ваше «предположение» состоит в том, что если задержка в сети выше (медленнее), чем скорость SSD, вы не выиграете, имея все данные в ОЗУ, поскольку у вас будет медленная работа в сети.
И это будет выглядеть так. Но вы также должны учитывать параллелизм. Если вы получаете 1000 запросов данных одновременно, может ли диск выполнить 1000 одновременных запросов? Конечно, нет, так сколько времени потребуется для обслуживания этих 1000 запросов? По сравнению с оперативной памятью?
Трудно свести это к одному фактору, такому как тяжелые нагрузки. Но да, если бы вы выполняли одну операцию, задержка сети такова, что вы, вероятно, не заметите разницу между SSD и RAM.
Так же, как пока на рынке не появился диск 12 Гбит / с, сетевое соединение 10 Гбит / с не было бы перегружено одним потоком, поскольку диск был узким местом.
Но помните, что ваш диск делает много других вещей, ваш процесс - не единственный процесс на машине, ваша сеть может нести разные вещи и т. Д.
Кроме того, не вся активность диска означает сетевой трафик. Запрос к базе данных, поступающий из приложения на сервер базы данных, представляет собой очень минимальный сетевой трафик. Ответ от сервера базы данных может быть очень маленьким (одно число) или очень большим (тысяча строк с несколькими полями). Для выполнения операции серверу (серверу базы данных или нет) может потребоваться выполнить несколько операций поиска, чтения и записи на диск, но при этом отправлять только очень маленький бит по сети. Это определенно не один-к-одному сетевой диск-RAM.
До сих пор я избегал некоторых деталей вашего вопроса, в частности, части Redis.
Redis - это хранилище структуры данных в памяти с открытым исходным кодом (лицензировано BSD), используемое в качестве базы данных, кэша и посредника сообщений. - https://redis.io/
ОК, значит, все в памяти. Извините, этот быстрый SSD-накопитель здесь вам не поможет. Redis может сохранять данные на диске, поэтому он может быть загружен в ОЗУ после перезагрузки. Это только для того, чтобы не «потерять» данные или не заполнить холодный кеш после перезагрузки. Так что в этом случае вам придется использовать оперативную память, несмотря ни на что. У вас должно быть достаточно оперативной памяти для хранения вашего набора данных. Недостаточно ОЗУ, и я думаю, что ваша ОС будет использовать swap
- вероятно, не очень хорошая идея