KVM虚拟化性能优化(2)

3、客户机的磁盘IO调度策略

客户机上的磁盘只不过是宿主机的一个文件,所以其IO调度并无太大意义,反而会影响IO效率,所以可以通过将客户机的IO调度策略设置为NOOP来提高性能。NOOP就是一个FIFO队列,不做IO调度。可以通过给内核传递一个参数来使用NOOP调度策略

编辑文件/boot/grub/grub.conf,在kernel那行加入elevator=noop

 

宿主机调度方式改为:deadline deadline是通过时间以及硬盘区域进行分类,这个分类和合并要求类似于noop的调度程序确保了在一个截止时间内服务请求,默认读期限短于写期限.这样就防止了写操作因为不能被读取而饿死的现象。

 

4、打开KSM(Kernel Samepage Merging)

页共享在内核2.6.32之后又引入了KSM。KSM特性可以让内核查找内存中完全相同的内存页然后将他们合并,并将合并后的内存页打上COW标记。KSM对KVM环境有很重要的意义,当KVM上运行许多相同系统的客户机时,客户机之间将有许多内存页是完全相同的,特别是只读的内核代码页完全可以在客户机之间共享,从而减少客户机占用的内存资源,从而可以同时运行更多的客户机。

CentOS默认没有开启KSM,如果KVM要使用KSM那必要安装:qemu-common。

开启KSM服务:service ksm start

service ksmtuned start

通过/sys/kernel/mm/ksm目录下的文件来查看内存页共享的情况,pages_shared文件中记录了KSM共享的总页面数,pages_sharing文件中记录了当前共享的页面数。每个页面的大小为4KB 可计算出共享内在为:4X页面数=内存大小(K)

KSM会稍微的影响系统性能,以效率换空间,如果系统的内存很宽裕,则无须开启KSM,如果想尽可能多的并行运行KVM客户机,则可以打开KSM。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/582bfd17c71f8650f731ed494b479bed.html