gpt4 book ai didi

Windows - 通过 "localhost"访问数据是否会产生网络堆栈开销

转载 作者:可可西里 更新时间:2023-11-01 12:41:31 28 4
gpt4 key购买 nike

我有大量音频文件,我正在通过处理算法运行以尝试从中提取某些数据位(即:整个剪辑的平均音量)。我有一些之前从 Samba 网络共享中提取输入数据的构建脚本,我已经通过 net use 创建了一个网络驱动器映射(即:M: ==>\\server\share0).

现在我有了一个新的 1TB 大容量 SSD,我可以在本地存储文件并快速处理它们。为了避免大量重写我的处理脚本,我删除了我的网络驱动器映射,并使用 localhost 主机名重新创建了它。即:M: ==>\\localhost\mydata

当我使用这样的映射时,我是否冒着产生大量开销的风险,例如来自必须通过 Windows 网络堆栈的一部分的数据,或者操作系统是否使用任何快捷方式因此它或多或少等同于直接访问磁盘(即:机器是否知道它只是从自己的硬盘驱动器中提取文件)。 延迟增加对我来说不是什么大问题,但最大持续平均吞吐量至关重要。

我问这个是因为我正在决定是否应该修改我的所有处理脚本以使用不同的网络路径样式。

额外问题:这同样适用于 Linux 主机:它们是否足够聪明,知道它们是从本地磁盘中提取的?

最佳答案

When I make use of such a mapping, do I risk incurring significant overhead,

是的。通过使用 UNC 路径 (\\hostname\sharename\filename) 而不是本地路径 ([\\?\]driveletter:\directoryname\filename),您让所有流量都通过服务器消息 block 协议(protocol) (SMB/Samba) 发生。这通常会在磁盘访问和访问时间方面增加大量开销。

网络上的流量是这样的:

Application -> SMB Client -> Network -> SMB Server -> Target file system

现在将文件移动到本地计算机,但仍使用 UNC 访问它们,流程如下:

Application -> SMB Client -> localhost -> SMB Server -> Target file system

您唯一最小化的(不是消除,到本地主机的 SMB 流量仍然涉及网络层和所有计算和相关流量)是网络流量。

此外,鉴于 SMB 是专门为网络流量量身定制的,它的读取可能无法以最佳方式使用您的磁盘和操作系统的缓存。例如,它可能以特定大小的 block 执行读取,而您的磁盘在读取另一种大小的 block 时性能更好。

如果您想要最佳的吞吐量和最少的访问时间,请在两者之间使用尽可能少的层,在这种情况下通过直接访问文件系统:

Application -> Target file system

关于Windows - 通过 "localhost"访问数据是否会产生网络堆栈开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33790358/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com