NFS传文件慢揭秘:从虚机到PVE,问题根源找到了!
一、那不堪回首的“慢速”往事
大家好,今天我要分享一个让我欲哭无泪的技术问题:NAS的NFS文件传输速度慢到让人怀疑人生。一开始,我只是想在家搭建个私人影院,用群晖NAS存放我的4K电影,然后通过NFS挂载到PVE(Proxmox Virtual Environment)虚拟化的播放机上播放。想想都觉得很美,不是吗?现实总是残酷的。

电影开始播放没多久,我就发现画面卡顿得让人受不了。一查原因,竟然是NFS的传输速率只有可怜的11MB/s,这简直就是百兆网络的速度啊!在这个千兆网络甚至更快速网络遍地开花的时代,这样的速度简直让人无法接受。
二、深挖问题根源:从虚拟网卡到物理网卡

我开始了一系列的排查。我注意到虚拟机的网卡类型是VirtIO,但在群晖的D**(DiskStation Manager)网卡界面里,竟然没有识别出网卡的型号和速率。这简直就像是在黑暗中摸索。
于是,我决定改变虚拟网卡的类型,看看是否有所改善。先换成了E1000类型,测试后发现速度还是一样慢,但至少D**能识别出是千兆网卡了,这算是个小小的进步吧。接着,我又尝试了vmxnet3类型,结果还是一样。我开始怀疑人生,这到底是哪里出了问题?

就在这时,我注意到物理机上的i226网卡是支持10/100/1000/2500Mbps自协商的,而且PVE 8.1.4也能正确识别。我突然想到,难道是PVE的管理口出了问题?
三、性能大考验:iperf3测速记

为了找出问题的根源,我决定使用iperf3这个网络性能测试工具来测一测。在D**系统上通过Docker部署了iperf3服务端。这里有个小插曲,D**系统不能直接输入命令参数“-s”,得在SSH环境下执行Docker命令。搞定后,就可以在D**界面上方便地启动、停止,甚至设置自动重启了。
接着,在PVE上安装了iperf3客户端。测试开始了,结果让人大跌眼镜。PVE到虚拟机的速度竟然能达到1GB/s以上,而其他类型的网卡也能达到120MB/s。看来虚拟机网卡本身是没问题的啊!

但是,当测试PVE到群晖NAS的速度时,又回到了可怜的11.2MB/s。我开始怀疑人生了,这到底是哪里出了问题?
四、揭开真相:网线也疯狂

在PVE界面上查不到网卡速率,我急得像热锅上的蚂蚁。突然,我灵机一动,决定用ethtool命令来查看物理网卡的详细信息。执行了ethtool enp3s0后,我得到了网卡的详细信息。
接下来,我尝试修改网卡速率,执行了ethtool -s enp3s0 speed 1000 duplex full autoneg off命令。并没有什么用,查看速率还是100M,而且是自动协商的。这时,我突然想到了一个可能的原因——网线!

我赶紧回家,第一件事就是更换网线。换上新的网线后,奇迹发生了!网速自动协商为了1000M。我定睛一看,原来那根旧网线竟然是CAT 5的。这种网线理论上只支持百兆网络,而我之前竟然没注意到这一点。
五、总结与反思
经过这次痛苦的排查过程,我深刻体会到了细节的重要性。一根不起眼的网线,竟然能导致如此大的问题。这也提醒我们,在解决技术问题时,一定要细心、耐心,并且敢于怀疑一切可能的原因。
我想说的是,技术之路上充满了未知和挑战,但只要我们保持好奇心和求知欲,就没有解决不了的问题。希望我的经历能给大家带来一些启示和帮助。
写在最后
这次NAS的NFS文件传输速度问题虽然让我头疼不已,但也让我收获了很多宝贵的经验。在排查问题的过程中,我不仅学会了如何使用iperf3进行网络性能测试,还深刻体会到了细节决定成败的道理。希望我的分享能对大家有所帮助,让我们一起在技术的海洋里遨游吧!