监视并记录处理网络文件的程序的速度

监视并记录处理网络文件的程序的速度

我们在网络中的多台计算机上使用 CAD 程序。所有文件和项目都存储在网络存储中。

用户抱怨打开和保存网络时等待的时间太长。

我们(IT 部门)假设除了纯粹的网络延迟之外还有其他问题。但为了确保万无一失,我们正在考虑一个程序来监控和记录 CAD 项目的开始和结束时间。

也许你们已经对如何实现这个目标有一些想法了?!

我们的第一个想法是记录网络“流”的开始和结束时间。但是我们如何才能确定文件打开过程的开始和结束时间呢?

一些补充说明:

  • CAD 项目由很多文件组成
  • 所有 CAD 文件都存储在相同且独立的网络共享上
  • 数据是从 Windows Server 2008 R2 共享的
  • 所有客户端均在 Windows 7 64 位上运行
  • 客户端和服务器之间有两台 HP Procurve 4208vl 交换机
  • 两台 HP 交换机通过 4gbit/s(4 对光纤电缆)连接
  • 约有 6 位客户使用 CAD 程序
  • 大约 50 个其他客户端使用其他服务器上的交换机和其他网络共享

任何帮助都将不胜感激:-)

答案1

感谢@joeqwerty 提供的有关数据包捕获程序的提示。

我们现在使用https://www.wireshark.org/它与 smb2 过滤器配合得很好:https://wiki.wireshark.org/SMB2

我们正在使用此过滤器:

  • 不显示广播流量:!(eth.addr == ff:ff:ff:ff:ff:ff)
  • 仅获取客户端和服务器之间的流量:ip.addr == _server-ip_ || ip.addr == _client-ip_
  • smb2 协议标志:smb2.create_flags || smb2.create.rep_flags || smb2.close.flags
  • 仅显示 CAD 文件夹:smb2.filename contains "_foldername_"

所以总的过滤器是:

!(eth.addr == ff:ff:ff:ff:ff:ff) && (ip.addr == _server-ip_ || ip.addr == _client-ip_) && (smb2.create_flags || smb2.create.rep_flags || smb2.close.flags || smb2.filename contains "_foldername_")

通过此过滤器,我们现在可以看到 CAD 文件夹中所有文件的开始和结束请求。通过相关的时间戳,我们可以计算出打开包含所有子文件的整个文件需要多长时间。

虽然没有我们想要的那么自动化,但在我看来,这是一个很好的方法。也许在遥远的未来,我们有时间用一段 Java 代码和 jnetpcap 库来自动化时间测量……

相关内容