Istnieje kilka wersji „wykresów opóźnień, które każdy powinien znać”, takich jak:
Chodzi o to, że w rzeczywistości istnieje coś więcej niż tylko opóźnienie. To kombinacja czynników.
Jakie jest opóźnienie sieci w centrum danych? Opóźnienie, powiedziałbym, że „zawsze” poniżej 1ms. Czy to jest szybsze niż pamięć RAM? Nie. Czy jest blisko pamięci RAM? Nie wydaje mi się
Pozostaje jednak pytanie, czy jest istotne. Czy to jest podstawa, którą musisz znać? Twoje pytanie ma dla mnie sens. Ponieważ wszystko ma swój koszt, powinieneś dostać więcej pamięci RAM, aby wszystkie dane mogły pozostać w pamięci RAM lub od czasu do czasu można czytać z dysku.
Twoim „założeniem” jest to, że jeśli opóźnienie sieci jest większe (wolniejsze) niż prędkość dysku SSD, nie zyskasz, mając wszystkie dane w pamięci RAM, ponieważ będziesz mieć wolne w sieci.
I tak by się wydawało. Ale musisz również wziąć pod uwagę współbieżność. Jeśli otrzymasz 1000 żądań danych jednocześnie, czy dysk może wykonać 1000 równoczesnych żądań? Oczywiście, że nie, więc ile czasu zajmie obsłużenie tych 1000 próśb? W porównaniu do pamięci RAM?
Trudno sprowadzić go do jednego czynnika, takiego jak duże obciążenia. Ale tak, jeśli wykonałeś jedną operację, opóźnienie sieci jest takie, że prawdopodobnie nie zauważysz różnicy między dyskiem SSD a pamięcią RAM.
Podobnie jak do momentu pojawienia się na rynku dysku 12 Gb / s, łącze sieciowe 10 Gb / s nie byłoby przeciążone przez pojedynczy strumień, ponieważ dysk stanowił wąskie gardło.
Pamiętaj jednak, że twój dysk robi wiele innych rzeczy, twój proces nie jest jedynym procesem na komputerze, twoja sieć może przenosić różne rzeczy itp.
Ponadto nie cała aktywność dysku oznacza ruch sieciowy. Zapytanie do bazy danych pochodzące z aplikacji na serwer bazy danych to tylko bardzo minimalny ruch sieciowy. Odpowiedź serwera bazy danych może być bardzo mała (pojedyncza liczba) lub bardzo duża (tysiąc wierszy z wieloma polami). Aby wykonać operację, serwer (serwer bazy danych lub nie) może wymagać wykonania wielu operacji wyszukiwania, odczytu i zapisu na dysku, ale wysyłania bardzo małej ilości danych z powrotem przez sieć. Zdecydowanie nie jest to RAM-dysk sieciowy jeden na jednego.
Do tej pory unikałem pewnych szczegółów twojego pytania - w szczególności części Redis.
Redis to open source (licencjonowany BSD), magazyn struktur danych w pamięci, wykorzystywany jako baza danych, pamięć podręczna i broker komunikatów. - https://redis.io/
OK, to znaczy, że wszystko jest w pamięci. Przepraszamy, ten szybki dysk SSD ci tutaj nie pomoże. Redis może utrwalać dane na dysku, dzięki czemu można je załadować do pamięci RAM po ponownym uruchomieniu. To tylko po to, aby nie „utracić” danych ani nie trzeba ponownie wypełniać zimnej pamięci podręcznej po ponownym uruchomieniu. W takim przypadku musisz użyć pamięci RAM, bez względu na wszystko. Musisz mieć wystarczającą ilość pamięci RAM, aby pomieścić swój zestaw danych. Za mało pamięci RAM i myślę, że twój system operacyjny zużyje swap
- prawdopodobnie nie jest to dobry pomysł.