使用netcat与CIFS / SMB传输速率测量networking吞吐量

我一直在试图衡量和衡量我们局域网的吞吐量作为一个更大的项目的一部分。 我们的LAN使用cat5e和支持10/100/1000 Mbps自动感应的HP ProCurve 1800-24G交换机构build。 物理拓扑相当简单。 我们的服务器机架中有一台ProCurve,所有的服务器都连接到了(我把它错误地称为“主干”交换机)。 所有客户机所连接的三台交换机中的每台交换机都使用单独的电缆/端口连接到每个交换机的“主干”交换机。 这基本上是一个“枢纽”的devise。 我正在testing的工作站是远离“骨干”交换机的两台交换机,并且有一个旧的IDE驱动器。 我用HDTune以近似60 MB / s的速度来测量驱动器的速度。 我们的服务器是HP DL380 G5,带有一个72GB单端口15K SAS驱动器的RAID6arrays和两个3.0Ghz的Intel Xeon Duo Core CPU。

我已经阅读了其他一些关于这个主题的问题以及汤姆硬件文章,所以我知道我的实际吞吐量将远远低于1Gbitnetworking的理论最大带宽(例如, 124 MB / s的传输速率)。 然而,令我困惑的是,我正在使用netcat的数字与使用CIFS / SMB进行文件传输的时间之间的差异。

我正在使用netcat的cygwin版本,如下所示:

在“服务器”上:

nc -vv -l -p 1234 > /dev/null

在“客户”上:

time yes|nc -vv -n 192.168.1.10 1234

为了使用CIFS / SMBtesting文件传输速率,我只需要使用cygwin来做这样的事情:

time cp local_file.iso /remote_dir/

现在,除非我已经完成了我的math(除以秒传输字节,获得每秒字节数,并从那里转换)完全错误的转移与netcat是真的很慢。 像4-8 MB /秒慢。 另一方面,使用一个120MB的.iso作为传输文件,我计算出CIFS / SMB服务器的吞吐量在30-35 MB / s左右。 我仍然希望得到更慢的数字,但是和我使用netcat的数字完全不同。

我应该提到,实际上我使用两台不同的服务器来执行netcat和CIFS / SMBtesting。 我正在使用netcat的XenServer主机,以及Windows 2003 Server for CIFS(我没有在Windows服务器上安装netcat的选项)。 它们在硬件方面是相同的。 现在我知道这可能是橙色比较的一个苹果,但如果我做一个CIFS传输到XenServer主机,我得到的传输速率正好在30 MB / s左右,这似乎与我得到Windows 2003 Server的结果一致。

我想我真的有两个问题:1)为什么netcat和CIFS / SMB共享文件传输的时间不同? 2)为什么我的实际吞吐量如此之低? 我知道我的磁盘只能将如此之多的数据快速地推送到NIC,但是我肯定应该看到大约60 MB / s左右的数据。

看看xen的读取速度有多快 – 使用hdparam之类的东西,或者只是做一个本地拷贝,这样就可以了解磁盘性能

传输文件尝试像dd这样的不同工具很奇怪,为什么NC很慢 – 例如对我来说非常快

在这里我没有真正的答案,除非真正小心使用什么工具来衡量实际吞吐量。 我已经使用netcat(包括cygwin和GNU版本),定时CIFS / SMB传输,定时SCP传输,iperf和NetCPS在两个方向的多个主机上,当然,我已经得到了不同的答案。 然而,我发现,仔细和有条不紊地使用相同的工具,我会得到不同的主机相似的数字。

另一件值得一提的是很多这些工具只testingnetworking吞吐量。 他们的有效负载实际上是从内存直接发送到networking(我相信iperf和NetCPS都这样做)。 虽然这对于帮助testingnetworking性能和查明基础结构问题很有用,但它不能很好地理解客户端节点的性能。 在我的情况下,我可以使用类似于定时文件传输的方式从我的工作站获得大约25-30 MB /秒的速度,但是iperf会报告我可以达到45-50 MB /秒。

所以,这几乎包括我所知道的关于我的问题的前半部分…在测量networking带宽时,不同的工具会给你带来截然不同的结果。

至于我的问题的第二部分,我真的不知道。 大约25-30 MB / sec的传输速率对于terminal节点来说似乎是很糟糕的,直到你意识到它们只能像驱动器和总线一样快速地将数据推送到networking上(而我的工作站是sloowww)。 我是否希望能够使用超过理论带宽的25%? 是的,但从我看过的结果来看,并不是完全不寻常的。 我发现服务器当然要快得多(60-70 MB /秒),这是围绕他们测量的最大磁盘速度(HDTune报告它大约为1GB /秒…对于单通道15K RPM RAID-6 SAS驱动器?)。 但奇怪的是,有些服务器似乎要慢得多,并且根据哪台机器作为客户端,哪台服务器作为服务器,存在不对称的传输速率。 例如:我会在一个方向上达到45MB /秒,而在另一个方向上达到12MB /秒。 我怀疑这些服务器在单独的子网上的事实可能是怪,但我还没有证实。 我甚至去testing网卡,交换机端口和电缆来尝试发现故障。 我认为失败在networking地形devise和路由器,但我不能确定,因为在我到达之前没有做基准testing。 长话短说…某些事情比其他networking慢很多。 奇怪的确如此。

物理networking地形:

  ----- 146.63.205.65 ----|--------| | | "Main" |---- [Client Switch # 1] <--[NetWare 6.5] | Switch |---- [Client Switch # 2] | | |---- [Client Switch # 3] ----- 192.168.61.1 -----|--------| | | "Servers"