数据中心内的延迟是多少?我问这个问题时假设存在数量级的差异

数据中心内的延迟是多少?我问这个问题时假设存在数量级的差异

我正在尝试弄清楚一些我找不到好答案的事情。

如果我有一个位于数据中心的 REDIS 缓存(或一些外部内存缓存),并且应用程序服务器位于同一个数据中心,那么这两台机器之间读取数据的网络连接速度(延迟、吞吐量)是多少?

例如,网络“速度”是否仍然至少比从 REDIS 缓存中查找数据的 RAM 速度高一个数量级?

我的终极问题是——将这些数据全部放在 REDIS 的内存中是否真的有任何用处?与 REDIS 将这些数据全部缓存到 SSD 相比,这是否真的有用?内存价格昂贵。如果网络确实不是数据中心内的瓶颈,那么内存就有价值。否则,内存就没有价值。

我想我的问题是,尽管数据中心存在大量未知数,无法概括以及存在差异,但我们谈论的计算机系统中的内存延迟与 DC 内部最好的网络之间的数量级是否足够大,以至于内存的延迟降低不会带来显着的性能改进?我知道有很多变量,但它有多接近?这些变量是否如此接近以至于确实很重要?例如,采取夸张的立场,磁带驱动器比网络慢得多,因此磁带不是缓存的理想选择。

答案1

“每个人都应该知道的延迟图表”有几个版本,例如:

实际情况是,不仅仅是延迟问题,而是多种因素的综合作用。

那么,数据中心内的网络延迟是多少?延迟,我会说它“始终”低于 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- 这可能不是一个好主意。

答案2

计算机系统中有很多层缓存。在应用程序层插入一个缓存可能会很有用,它可以缓存 API 和数据库查询。还可能缓存用户会话等临时数据。

像 Redis 这样的数据存储通过网络(快速)或 UNIX 套接字(甚至更快)提供这种服务,就像您使用数据库一样。

您需要测量应用程序的实际性能,但让我们举一个例子。假设一个常见的用户请求执行 5 个 API 查询,每个查询需要 50 毫秒。250 毫秒是用户可检测到的延迟。与缓存结果形成对比。即使缓存位于城镇的不同可用区域(不是最佳的),命中时间最多也只有 10 毫秒。这将是 5 倍的速度提升。

实际上,数据库和存储系统也有自己的缓存。但是,通常获取预取结果比再次经过数据库引擎和存储系统层要快得多。此外,缓存层可以大大减轻其后面的数据库的负载。

想要了解生产环境中此类缓存的示例,可以查看关于架构的 Stack Overflow 基础设施博客。数十万个 HTTP 请求产生数十亿个 Redis 点击量,这是相当可观的。

内存很昂贵。

DRAM 的访问时间为 100 纳秒,比固态永久存储器快大约 100 倍。就这种性能而言,它的价格相对便宜。对于许多应用程序来说,多一点 RAM 可以换来宝贵的速度和响应时间。

相关内容