网络现在比磁盘快吗?

Modified on: Wed, 13 Nov 2019 22:00:02 +0800

这是一个软件设计问题

我曾经使用以下速度规则

cache memory > memory > disk > network

每一步都是上一步的5-10倍(例如,缓存比主存快10倍)。

现在,似乎千兆以太网的延迟小于本地磁盘。因此,读取大型远程内存数据库的操作可能比本地磁盘读取更快。这对于像我这样的旧计时器来说就像是异端邪说。 (我只是花了一些时间在磁盘上构建一个本地缓存,以避免不得不进行网络往返 - 因此我的问题)

有没有人在这个领域有任何经验/数字/建议?

是的,我知道找到的唯一真正的方法是建立和衡量,但我想知道一般规则。

修改强>:

这是来自最佳答案的有趣数据:

  • 在同一数据中心内往返500,000 ns

  • 磁盘寻求10,000,000 ns

这对我来说很震惊;我的心理模型是网络往返本身就很慢。它不是 - 它比磁盘'往返'快10倍。

Jeff attwood发布了关于http:// blog .codinghorror.com /的无限空间之间词/

作者:Community,pm100

最佳答案

以下是一些你可能正在寻找的数字,正如谷歌研究员杰夫迪恩所引用的那样:

  

    

      

每个人都应该知道的数字

L1 cache reference                             0.5 ns
Branch mispredict                              5 ns
L2 cache reference                             7 ns
Mutex lock/unlock                            100 ns (25)
Main memory reference                        100 ns
Compress 1K bytes with Zippy              10,000 ns (3,000)
Send 2K bytes over 1 Gbps network         20,000 ns
Read 1 MB sequentially from memory       250,000 ns
Round trip within same datacenter        500,000 ns
Disk seek                             10,000,000 ns
Read 1 MB sequentially from network   10,000,000 ns
Read 1 MB sequentially from disk      30,000,000 ns (20,000,000)
Send packet CA->Netherlands->CA      150,000,000 ns

    

  

这是来自他的演讲题为设计大型分布式系统的设计,教训和建议,你可以在这里得到它:

大规模分布式系统和中间件(LADIS)2009上发表了演讲。

其他信息


据说 gcc -O4将您的代码通过电子邮件发送给Jeff Dean重写。



相关问答

添加新评论