KVM NFS磁盘性能不佳

前端之家收集整理的这篇文章主要介绍了KVM NFS磁盘性能不佳前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
情况:我们有一台ubuntu服务器,它使用KVM托管三个虚拟机.所有来宾和主持人都需要访问/ var的某个子文件夹中的相同文件.因此,子文件夹通过NFS导出.我们的问题是guest虚拟机只能以主机速度的一半读取/写入目录.导出表看起来像这样
alice@host:~$cat /etc/exports
/home/videos 192.168.10.0/24(rw,sync,no_root_squash)

其中主机具有IP 192.168.10.2和VM 192.168.10.1 {1..3}. / home / videos是/ var中某个子文件夹的符号链接.特别是,它是/ var / videos / genvids.

这是来自VM的fstab的相关行:

192.168.10.2:/home/videos /mnt/nfs nfs auto,noatime,rsize=4096,wsize=4096  0 0

硬盘的持续数据速率约为155 MB / s,由hdparm -tT和dd的输出验证:

alice@host:~$dd if=/home/videos/4987_1359358478.mp4 of=/dev/null bs=1024k count=300
300+0 records in
300+0 records out
314572800 bytes (315 MB) copied,2.04579 s,154 MB/s

在VM中,事物看起来不同:

bob@guest:~$dd if=/mnt/nfs/4959_3184629068.mp4 of=/dev/null bs=1024k count=300
300+0 records in
300+0 records out
314572800 bytes (315 MB) copied,4.60858 s,68.3 MB/

将块大小拟合到文件系统的页面大小没有令人满意的效果

bob@guest:~$dd if=/mnt/nfs/4925_1385624470.mp4 of=/dev/null bs=4096 count=100000
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied,5.77247 s,71.0 MB/s

我咨询了有关NFS性能的各种页面,最相关的是NFS FAQs B部分,以及相应的Performance Tuning Howto.大多数提示不适用.其他人没有改善结果. There are threads here处理磁盘性能和KVM.但是它们不包括NFS方面. This线程确实如此,但网络速度似乎不是我们案例中的限制因素.

为了给出完整的图片,这是解析了符号链接的导出etab的内容,并显示了所有活动的导出选项:

alice@host:~$cat /var/lib/nfs/etab
/var/videos/genvids 192.168.10.0/24(rw,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)

在这种情况下我也困扰我 – 以及我不理解的 – 是nfsd的procfile输出

alice@host:~$cat /proc/net/rpc/nfsd
...
th 8 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
...

对于第三列及更高版本,在从VM中的磁盘读取之后,我将期望除零之外的值.但是,nfsstat告诉我确实有读取操作:

alice@host:~$nfsstat
...
Server nfs v3:
null         getattr      ...
9     0%     15106     3% ...
read         write        ...
411971   95% 118       0% ...
...

所以,这个主题非常复杂,我想知道在哪里寻找或者是否有一个简单的解决方案.

解决方法

事实证明,问题比预期更容易解决.调整VM的fstab中的rsize和wsize选项就可以了.各自的线路现在
192.168.10.2:/home/videos /mnt/nfs nfs auto,rsize=32768,wsize=32768  0 0

对我来说,这并不明显,因为如果rsize和wsize的值满足磁盘的块大小(4096)并且不大于NIC的MTU(9000),我的预期性能最佳.显然,这种假设是错误的.

值得注意的是,确切的持续磁盘数据速率取决于文件:对于两个大小为9 GB的类似文件,我观察到的速率介于155 MB / s(文件1)和140 MB / s(文件2)之间.因此,使用一个文件降低数据速率仍可能导致另一个文件的完整数据速率.

猜你在找的Linux相关文章