【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
最近在尝试学习和配置一台KVM服务器
硬件:2 x XEON 5606,16G ram,15000转 300G sata1
软件:CentOS 6.2,Kernel 2.6.32-220.7.1.el6.x86_64
在虚拟机的存储选择这块,我们知道KVM可以使用:
方案1. 基于镜像的存储,也就是使用raw image作为存储文件
方案2. 基于设备的存储,从宿主机的Volumn Group中分配一个独立的逻辑卷出来给虚拟机使用
我用dd测试了两者的性能,写入这方面,不管是小文件还是大文件方案2(约150-160MB/s)比方案1(约140-150MB/s)大概能有10%的性能提升
但是用dd测试读取却显示了很奇怪的情况,方案1(约700-800MB/s)比方案2(越170-180MB/s)要快非常多倍,方案1的表现实在是过于夸张,让人不得不怀疑实际上是不是其实是宿主的从内存缓存中读取
我在宿主机上用dd进行了同样的测试:写入的情况,和以上方案1,2差异并不是非常夸张;但是读取在宿主上却显示出了更为夸张的结果,读取速度甚至可以达到3-5G,这毫无疑问应该就是缓存发生作用的结果
我的问题就是,在这样的一个测试结果下,是不是意味着有充足的内存作为缓存的情况下,方案1可以比方案2有更好的读取性能。在宿主的内存已经全部分配给VM的情况下呢?作为一台打算部署若干web + mysql的服务器,综合考虑性能和易于管理的条件下,我的虚拟机应该都配置成直接使用LVM逻辑卷设备好还是使用镜像好?
PS: 我用另外一个专门的hdparm加上参数-t和-T分别进行了读取测试,也显示出了和上面我用dd测试的类似的结果:
虚拟机使用LVM:开缓存~4GB/s,不开缓存~170MB/s
虚拟机使用镜像:开缓存~4.5GB/s,不开缓存~500MB/s
宿主:开缓存~5.5GB/s,不开缓存~190MB/s