1.CPU优化
使用VT-X
taskset绑定kvm进程到固定的CPU,减少Cache Miss,性能提高1-10%
2.内存优化
影子页表
开启EPT,加快地址转换:客户机虚拟地址-->宿主机物理地址
使用大页内存(khugepaged)加快内存寻址,对虚拟机性能提升10个点以上
3.I/O优化
半虚拟化:Virtio Virtio-net Virtio-blk
I/O调度算法
使用VT-X
taskset绑定kvm进程到固定的CPU,减少Cache Miss,性能提高1-10%
影子页表
开启EPT,加快地址转换:客户机虚拟地址-->宿主机物理地址
使用大页内存(khugepaged)加快内存寻址,对虚拟机性能提升10个点以上
[root@linux-node4 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never #内存合并把连续的4k内存合并成为2M的大页内存,系统已默认开启
半虚拟化:Virtio Virtio-net Virtio-blk
I/O调度算法
[root@linux-node4 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq #I/O调度算法,调优的重点
[root@linux-node4 ~]# dmesg | grep -i scheduler
[ 0.775193] io scheduler noop registered #ssd推荐用noop模式,快
[ 0.775195] io scheduler deadline registered (default) #数据库推荐用这个,避免写操作没有被响应饿死
[ 0.775396] io scheduler cfq registered #kvm推荐用这个,均匀的分布I/O访问
[root@linux-node4 ~]# echo cfq > /sys/block/sda/queue/scheduler #设置命令
[root@linux-node4 ~]# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
永久修改 加入内核参数 elevator=noop