从NAS4FREE迁移到PVE(续)
前阵子迁移到PVE后,用起来感觉非常不错,但总感觉性能不太够,一是低端赛扬双核实在是不够看,二是磁盘速度上不去,思来想去,于是前阵子在淘宝上入手了一块E3 1260L(笑)
顺利安装,启用iommu,然后开始通过pci直通将主板上的sata控制器直接交给NAS,之后兴奋的跑了一下速度——给我泼了一盆凉水
速度跟之前相比没有任何变化,读写依旧是60M
于是开始排查问题,通过diskinfo -t /dev/adaX 进行测速,速度都很不错,尽管是5400转的硬盘,但速度也有个100M,四块硬盘都测试过,确定硬盘没有问题
那么,问题出在哪里?想着可能是网卡的问题,于是用iperf测速,速度在100M左右 ,虽然没有跑满千兆网125M,但相差也不大
最后,在PVE上查看了一下NAS的硬件配置,发现网卡配置成了E1000
想了想还是换成virtio(半虚拟化)
之后再在nas4free中的 系统 > 高级 > loader.conf 增加如下三行启用virtio支持
virtio_load="YES"
virtio_pci_load="YES"
if_vtnet_load="YES"
最后重启系统开机,再进行测速,恢复到了之前裸机安装NAS4FREE的速度!
写入在zfs arc的支持下可以达到100M,读取也有80M,完美!
但在实际使用时还是会遇上一些问题,由于PVE是安装在U盘上的,所以在重负载的情况下进行虚拟内存交换的时候会导致宿主机卡死,造成上面所有的虚拟机卡住——,所以,采用一个谷歌到的最简单的办法,直接减少虚拟内存的使用
永久生效:
echo "vm.swappiness = 0">> /etc/sysctl.conf (尽量不使用交换分区,注意不是禁用)
刷新SWAP
可以执行命令刷新一次SWAP(将SWAP里的数据转储回内存,并清空SWAP里的数据)
swapoff -a ; swapon -a
sysctl -p (执行这个使其生效,不用重启)
总结,虚拟机还是有不少坑要踩的,但是也很好用,毕竟一台当作多台来用,折腾就折腾点吧——