通过networking访问远程系统的内存是否比本地磁盘寻道更快?

看来,networking连接通常比本地磁盘寻道更快,正如networking现在比磁盘速度更快的问题所讨论的那样。

当我使用Berkeley DB,一个使用caching机制来提高性能的embedded式数据库时,我想到了这个问题。 当数据库非常大,没有足够大的内存时,磁盘查找会降低性能。

如果networking速度较快,我是否可以将数据库放到多台远程计算机的存储器中,并通过networking访问,以避免磁盘寻找。这可以作为工作站级PC的替代解决scheme。

PS:我不是以英语为母语的人。 所以对于我的不准确的expression道歉。 谢谢!

根据您提到的问题和答案,通过networking联系主机的速度可能会快于执行本地磁盘查找操作(当然取决于networking和磁盘)。

对于现实生活中的工作系统来说,这并不总是转化为更快的操作 – 记住当你谈论把数据库“存储在”各种分布式系统的内存中时(而不考虑可能出现的可用性和延迟问题)请记住,这些系统将执行自己的内存pipe理(并且可能会将数据分页到本地磁盘,从而给您带来最糟糕的两个世界),并且可能还有其他工作要做,从而使系统资源(如networking连接,说,忙,减less你的速度优势。

在一个相对简单的caching系统和试图在许多分布式系统的内存中运行数据库之间有很大的区别,就像你正在做的那样。 一些数据库事务可能会变得非常便宜(又快又快),但是其他的事务可能会变得更加昂贵,而且您可能会发现在这种系统中为快速性能而devise的需求限制了您的数据库devise,从而消除了任何好处。

所以我对你的回答是一个相当无聊的问题 您需要在负载下testing您的特定系统,看看是否有可能的理论性能收益转化为您的特定情况的真实收益。

与许多性能问题一样,这个问题的答案是:

“也许,基准你的情况,找出答案。

考虑到memcached的stream行我肯定会说是的。

在我的networking中,我通过4个以上的networking跳线获得了1ms以下的时间,而在7200rpm硬盘上的磁盘search可能需要1ms(如果你非常幸运),15ms(平均)到几秒(扇区不可读并且驱动器执行重新读取)。

你仍然应该有专门的局域网来访问memcached实例。