我有两个VPS – 一个运行2008 R2,另一个运行Ubuntu 12.04。 我正在使用Windows VPS for Quickbooks和其他一些应用程序的RD会话,并使用Ubuntu VPS作为NFS文件存储以及OpenVPN端点。 问题是,通过VPN的NFS性能是非常可怕的,通过这个我经常意味着它甚至不会经常连接和超时。
如果我在隧道外部设置NFS,性能还可以…不是很好,但是易于pipe理,所以我知道它是VPN隧道。
是否有任何调整openvpn或NFS我可以玩,以提高性能?
我做了所有的调整,以通过ipsec链接获得最佳的NFS性能,“ls / mnt / remote1 / etc”仍然是12.5s。 (我是280ms,13Mbps / 2Mbps是我最慢的一个环节)
经过一番search之后,我不断遇到WebDAV作为替代scheme。 我在客户端上使用Apache与webdav和davfs2挂载共享。 通过这个设置,ls从12.5秒到1.5秒,我得到了10Mbps的下载速度。 现在非常可用。
如果你想要root权限,那么你需要用“CFLAGS = -DBIG_SECURITY_HOLE”构buildapache。 这对我来说是好的,因为所有的用户都有root访问权限,而且我也只通过ipsec隧道提供webdav。
几件事情要尝试:
查看OpenVPN中的以下选项:fragment,mssfix,link-mtu。 基本上,所有与分组大小和分片有关的事情。 太小的VPN数据包可能会通过分割NFS数据包而降低性能。 OTOH太大的VPN数据包可能会降低性能,因为某些路由器不能很好地处理这些数据包。 这里很难画出一个简单的,一般的规则。
尝试在OpenVPN上启用/禁用压缩,并查看如何影响性能。
确保您的VPN服务器使用UDP进行传输,而不是TCP。
在NFS客户端上,查看选项:retrans,rsize,wsize – 或与数据包大小和error handling相关的任何其他数据。 根据您的情况,较小的数据包大小实际上可以提高性能(在LAN中,情况正好相反)。
这类问题没有确定的答案,但问题很可能出现在上面所述的领域。
Fabiano Tarlao提供的这些提示非常有用: https ://thegoodcodeinn.blogspot.be/2015/06/nfs-over-openvpn-over-adslor-slow.html?showComment = 1488621905080#c2984550821264645538
我在我的Casper Netboot上通过OpenVPN站点到站点隧道使用这个内核参数:
NFSOPTS=tcp,intr,timeo=100,rsize=1024,wsize=1024
我已经在ADSL连接上使用openvpn进行了NFSconfiguration,我已经尝试了不同的NFS挂载选项,在这里你可以find完整的文章: NFS over OpenVPN over ADSL(或者慢速连接)
我在这里引用有趣的部分:我已经阅读了很多post,并且我已经尝试了所提出的解决scheme的合理子集,这是最佳提示的总结:
对于Linux用户,这里是一个小软件安装的fstabconfiguration示例:
servername:/shared/ /mnt/foldername/ nfs rw,suid,dev,soft,exec,nouser,async,noauto,timeo=100,user,rsize=1024,wsize=1024,tcp 0 0
在这里,对于困难的坐骑:
rw,suid,dev,intr,exec,nouser,async,noauto,timeo=100,user,rsize=1024,wsize=1024,tcp 0 0
NFS over vpn + adsl仍然非常慢(目前我正在以大约150 KB /秒的速度传输文件,这比没有build议的更改要好得多)。 请考虑我的7Mbit ADSL有800KB / sec的下载带宽。
PS:我也会稍后检查openvpn碎片,感谢分享。 希望我的发现也会有用。
PS2:这些技巧在我的环境中工作得很好,我得到了不同人的两个正面的反馈。