SMB 返回整个文件而不是标头信息

SMB 返回整个文件而不是标头信息

启动一段代码检查对许多数据文件(平面文件,因此每个表都是一个文件)的访问,当我进行数据包捕获时,在我们的捕获中,服务器只会将标头信息发送到客户端。但是,我有一个客户正在使用 SAN,它会获取整个文件而不仅仅是标头信息,除了速度较慢之外,这还会导致文件访问问题。他们已经在服务器和工作站上关闭了 OPLOCKS。这不是客户端服务器。数据文件和应用程序驻留在服务器上,但用户通过带有映射驱动器或 UNC 的快捷方式在本地运行应用程序。

因此,当我仅选择一个提示输入车辆编号的选项时,而不是尝试选择记录,而只是验证数据文件是否可访问,该窗口会在 1-2 秒内打开。当他们做同样的事情时,在有几个用户运行该程序后需要 6-15 秒。最大用户数为 15。该程序有很多小模块,800 个 .cob 模块。所以它非常繁琐,但这些都是数据文件。

我们有 Wireshark 捕获,显示他正在提取整个文件,而我们只获取了标头。他们的捕获与我们的捕获不同。我们怀疑是 SAN。

有没有人听说过 SAN 错误地解释运行时请求?那么 SMB 请求就是如此。这是 Acucobol-GT(现为 Microfocus)。该应用程序是用 COBOL 编写的。这不是一个新程序,只是一个新问题。这是一千多个客户中的一个,其他方面运行都很顺利,但我们完全不知所措。

所有 XP 用户,服务器是 Windows 2003(带虚拟服务器),我还不知道 SAN 信息。此外,我们有许多运行虚拟服务器的安装,但只有少数在 SAN 上运行,或者我们只是不知道。这不是网络吞吐量问题,服务器上的负载低于 5%,并且没有超时或重新传输。

PS 如果没有 Wireshark,我仍会苦苦挣扎。安装的应用程序跟踪文件看起来运行速度较慢。如果您想要 Wireshark 跟踪文件,我可以提供。

提前致谢 - 请原谅我的冗长(词语?)但我不确定什么是相关的。

答案1

如果正在使用 SAN,那么他们可能正在使用集群。我确实知道,SMB 在直接与机器对话时的行为与与虚拟服务器对话时的行为不同。我不知道确切的细节,但在解决此类问题时,了解这些事情很有用。

相关内容