我有一个Solaris 11系统,它有几个NFS导出,可以在我的局域网内访问我的其他系统。我使用Linux系统作为客户端进行测试。
我编写了一个测试读取速度的快速脚本,在千兆局域网上,我的平均速率约为110 13MB(或13 on /S)。我会认为它会变得更快。SSH (scp)只给我3.8MB/s,但那是加密的。
http给我1150万/S,类似于NFS。这么低不是吗?
这些数字的瓶颈是什么?
发布于 2012-12-27 23:06:05
NFS实际上不能最大限度地提高吞吐量,因为客户端一直在向服务器发送这么多数据(这些数据限制在几千字节以内),并在请求更多信息之前等待完整的答案,这意味着所有队列都是空的。网络上的所有FS (CIFS,SSHFS)都有相同的问题(以及IIRC,或者可能只是sftp,我不记得了)
除了加密开销之外,ssh还具有更多的性能限制(详见这里 )。
除非您使用执行块请求的客户端,否则HTTP应该是直TCP,因此不应该有这种限制。TCP在避免拥塞的同时,应该使用其拥塞控制算法来最大限度地提高吞吐量。虽然最初的几千字节可能被缓慢传输,但是如果两台机器是通过同一个交换机连接的,那么您应该能够在10秒钟内最大限度地利用带宽。可能会有一些不良的网络质量(如奇怪的数据包丢失)。
你可能想尝试的事情:
/dev/zero的内容(例如,使用socat或nc ),以排除瓶颈是FS访问。netstat -s)。iperf ( TCP和UDP)进行测试。发布于 2012-12-27 07:54:28
我过去也有过类似的情况,我解决的方法是强迫Solaris和Linux安装NFS v3而不是v4。
在Solaris端,您可以编辑/etc/default/nfs,并将服务器端的变量设置为server,并且只接受NFS v3端。
无法记住变量名,但它是不言自明的。
您所做的测试是复制一个大文件还是多个文件?如果它是几个文件,我不会感到惊讶,但如果它是一个文件,而不是是。
另外,您有什么样的底层存储?单盘?突袭装置?这也会影响您的性能。
发布于 2013-01-09 13:17:53
底层文件系统提供数据的速度有多快?NFS本身可以比您看到的更快地移动数据,这表明还有其他瓶颈。您可以通过使用iperf来确认网络可以流更高的带宽来说服自己。
我将登录到solaris系统,并从导出到/dev/null的文件系统中复制一个文件,以查看您可以以多快的速度将其流到/dev/null。请注意,您需要做出一些努力,以避免对已经在文件系统缓存中的文件进行读取测试。对于其他文件系统,您可以通过umount/挂载来使缓存失效,但仅这一点对ZFS来说是不够的。
https://unix.stackexchange.com/questions/59524
复制相似问题