高性能kvm服务器,Server在kvm上的性能优化

阅读:

1,423

Server在kvm上的性能提升,主要是分为两方面,一方面保证执行环境干净,不会被干扰;二是保证kvm虚拟中的模拟设备性能最优。下面主要是围绕这两个方面做一些优化。

保证程序运行环境的干净,这里主要是保证server运行环境干净:

1 kvm使用的cpu从宿主机系统调度中隔离。不然宿主机上的别的经常会占用分给kvm的cpu

配置方法:

grub.cfg中linux16打头的行添加isolcpus=4,5,6,7

4,5,6,7表示要隔离的cpu号,根据kvm使用的情况,隔离cpu

查看配置结果:

212d95a4b0789405b4da73573a76fb32.png

2 kvm和宿主cpu需要一一绑定,避免guest的cpu在物理cpu之间进行调度

配置方法:

修改kvm的xml配置文件

4

表示将虚拟的0号cpu绑定到物理cpu4上

表示虚拟机运行的cpu

查看配置是否生效:

73c50f7632ffba64b2b849cbe44a4e99.png

3 保证server的执行环境干净

这个server基础平台已经实现了,通过cgroup技术,实现了cpu资源的限制,非server的程序都控制在“mgt”线程所在的cpu上运行。如果没有mgt线程,将放在cpu 1上运行

cgroup文件是位置在:/sys/fs/cgroup/cpuset/Ns_Service_Cpus/

检查/sys/fs/cgroup/cpuset/Ns_Service_Cpus/tasks中进程id是否正确,保证非server的进程在这个task中

检查/sys/fs/cgroup/cpuset/Ns_Service_Cpus/cpuset.cpus的cpu是否正确,需要“mgt”线程运行的cpu或则1号cpu上

4 server的cpu使用分配

server最好运行在一个 socket的cpu上,因为不同的socket是的cpu和内交叉访问,对性能影响很大。

5 kvm使用cpu,采用cpu设置透传模式

修改虚拟机的xml文件,添加如下选项

6 网卡透传

(1)开机启动项

grub打开intel_iommu

在grub.cfg的intel_iommu=on

(2)加载驱动

modprobe vfio

modprobe vfio-pci

(3)设置指定pci 网卡驱动,可以用dpdk_nic_bind.py来绑定,比如pci 为0000:0b:00.0

则绑定命令为:

dpdk_nic_bind.py -b vfio-pci 0000:0b:00.0

7 vcpu和内存最好限定在同一个NUMA 节点

在NUMA架构中,cpu最好能访问 local memory 而非remote memory。

下面是访问内存距离差异

bf707d115a8bce0e993c3508421bb900.png

在虚拟机中,分给server的cpu最好是node0节点,内存最好也是。

如果cpu是node0,保证内存使用node0,需要在kvm配置文件中添加如下元素

表示优先使node0的内存

8 如果宿主机上开启了超线程,server线程dp_process、dp_in、dp_out最好能够单独占用物理核,

这个可以在kvm的xml文件中,绑定cpu时注意

9 设置IO cache

kvm的cache性能:writeback > none > writethrough ,安全上:writeback < none < writethrough

在kvm中xml文件中配置:

none是在各种环境中性能比较平均,安全和稳定

这个是我在优化server在kvm上的性能的一些方法,写出来与大家分享一下。可能有些深入度不够,写的不全,希望大家指正,共同探讨。

参考资料:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值