“每个人都应该知道的延迟图”有多种版本,例如:
实际情况是,不仅仅是延迟。这是多种因素的组合。
那么,数据中心内的网络延迟是多少?延迟,嗯,我会说它总是在1ms以下。它比RAM快吗?否。它靠近RAM吗?我不这么认为。
但是问题仍然存在,是否相关。那是您需要知道的基准吗?您的问题对我来说很有意义。由于一切都是有代价的,因此您应该获得更多的RAM,以便所有数据都可以保留在RAM中,还是可以不时从磁盘读取数据。
您的“假设”是,如果网络等待时间比SSD的速度高(慢),那么将所有数据都存储在RAM中将不会使您受益,因为网络速度会很慢。
看起来会这样。但是,您还必须考虑并发性。如果您一次收到1,000个数据请求,那么磁盘可以执行1,000个并发请求吗?当然不是,那么处理这1,000个请求需要多长时间?相比RAM?
很难将其归结为单个因素,例如重负载。但是,是的,如果您只进行一次操作,网络的等待时间就是您可能不会注意到SSD与RAM的差异。
就像直到12Gbps磁盘出现在市场上一样,一个10Gbps的网络链接不会因为单个磁盘流而成为过载,因为磁盘是瓶颈。
但是请记住,磁盘正在执行许多其他操作,您的进程不是计算机上的唯一进程,您的网络可能承载其他内容,等等。
另外,并非所有磁盘活动都意味着网络流量。从应用程序到数据库服务器的数据库查询仅是非常小的网络流量。来自数据库服务器的响应可能很小(一个数字)也可能很大(一千行包含多个字段)。要执行此操作,服务器(是否有数据库服务器)可能需要执行多个磁盘搜索,读取和写入操作,但仅通过网络发送回很小的一部分。绝对不是一对一的网络磁盘RAM。
到目前为止,我避免了您问题的某些细节-特别是Redis部分。
Redis是开源的(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理。- https://redis.io/
好的,这意味着一切都在内存中。抱歉,此快速SSD驱动器在这里无法为您提供帮助。Redis可以将数据持久保存到磁盘,因此可以在重启后将其加载到RAM中。这只是为了不丢失数据,或者在重新启动后必须重新填充冷缓存。因此,在这种情况下,无论如何都必须使用RAM。您将必须有足够的RAM来容纳您的数据集。RAM不足,我想您的操作系统会使用swap
-可能不是一个好主意。