"Herkesin bilmesi gereken gecikme çizelgeleri" nin çeşitli versiyonları vardır:
Mesele şu ki, gerçekte sadece gecikmeden daha fazlası var. Bu faktörlerin bir kombinasyonu.
Peki, bir veri merkezi içindeki ağ gecikmesi nedir? Gecikme, iyi "her zaman" 1ms altında olduğunu söyleyebilirim. RAM'den daha hızlı mı? Hayır. RAM'e yakın mı? Ben öyle düşünmüyorum.
Ancak soru hala geçerli, ilgili mi? Bilmen gereken referans noktası bu mu? Sorunuz bana mantıklı geliyor. Her şeyin bir maliyeti olduğundan, tüm verilerin RAM'de kalabilmesi için daha fazla RAM almanız gerekir veya zaman zaman diskten okumak iyidir.
"Varsayımınız", ağ gecikmesi SSD'nin hızından daha yüksekse (daha yavaş), ağda yavaşlayacağınız için RAM'deki tüm verileri elde edemeyeceğinizdir.
Ve öyle görünecekti. Ama aynı zamanda eşzamanlılığı da hesaba katmalısınız. Bir kerede veriler için 1.000 istek alırsanız, disk 1.000 eşzamanlı istek yapabilir mi? Tabii ki hayır, bu 1000 talebin sunulması ne kadar sürer? RAM ile karşılaştırıldığında?
Ağır yükler gibi tek bir faktöre kadar kaynatmak zordur. Ancak evet, devam eden tek bir işleminiz varsa, ağın gecikmesi, SSD ile RAM arasındaki farkı fark etmeyeceğiniz şekildedir.
Tıpkı 12Gbps disk piyasaya çıkana kadar, disk darboğaz olduğu için 10Gbps ağ bağlantısı tek bir akış tarafından aşırı yüklenmeyecekti.
Ancak, diskinizin başka birçok şey yaptığını unutmayın, işleminiz makinedeki tek işlem değildir, ağınız farklı şeyler taşıyabilir, vb.
Ayrıca, tüm disk etkinliği ağ trafiği anlamına gelmez. Bir uygulamadan veritabanı sunucusuna gelen veritabanı sorgusu yalnızca çok az ağ trafiğidir. Veritabanı sunucusundan gelen yanıt çok küçük (tek bir sayı) veya çok büyük (birden fazla alana sahip bin satır) olabilir. İşlemi gerçekleştirmek için, bir sunucunun (veritabanı sunucusu ya da değil) birden çok disk araması, okuması ve yazması gerekebilir, ancak ağ üzerinden yalnızca çok küçük bir parça geri gönderilebilir. Kesinlikle bire bir ağ-disk-RAM değil.
Şimdiye kadar sorunuzun bazı ayrıntılarından kaçındım - özellikle Redis kısmı.
Redis, veritabanı, önbellek ve mesaj aracısı olarak kullanılan açık kaynaklı (BSD lisanslı), bellek içi veri yapısı deposudur. - https://redis.io/
Tamam, yani her şey hafızada. Maalesef, bu hızlı SSD sürücüsü size yardımcı olmayacak. Redis verileri diske sürdürebilir, böylece yeniden başlatmadan sonra RAM'e yüklenebilir. Bu yalnızca verileri "kaybetmemek" veya yeniden başlatma sonrasında soğuk bir önbelleği yeniden doldurmak zorunda değildir. Bu durumda, ne olursa olsun RAM'i kullanmanız gerekecek. Veri kümenizi içerecek kadar RAM'e sahip olmanız gerekir. Yeterli RAM yok ve sanırım işletim sisteminiz kullanacak swap
- muhtemelen iyi bir fikir değil.