网卡多队列

网卡多队列技术通过中断绑定到不同核上,解决网络I/O瓶颈,提高PPS和带宽性能。在OpenStack中,设置镜像属性`hw_vif_multiqueue_enabled=true`即可开启。在L版中队列数等于CPU核数,S版在kernel 3.x限制8个,kernel 4.x可达256个。在S版环境中,通过`ethtool -l`检查多队列状态,并可通过手动调整XML配置改变队列数。
摘要由CSDN通过智能技术生成

我的知乎专栏:https://www.zhihu.com/column/c_1341027586424610816

背景信息

网卡多队列技术是指将各个队列通过中断绑定到不同的核上,从而解决网络I/O带宽升高时单核CPU的处理瓶颈,提升网络PPS和带宽性能。经过测试,在相同的网络PPS和网络带宽的条件下,与1个队列相比,2个队列最多可提升性能达50%到100%,4个队列的性能提升更大。

如何开启

在Openstack平台里,只需为镜像添加hw_vif_multiqueue_enabled=true属性,这样创建的新虚机,网卡多队列就开启了。

运行命令

glance image-update <imageid> --property hw_vif_multiqueue_enabled=true

镜像添加上属性后,再创建新虚机,网卡多队列就开启了。

网卡多队列的个数上限

对镜像使能hw_vif_multiqueue_enabled属性后,创建出来的虚机应用网卡多队列的个数,在L版和S版Openstack里不同:

  • L版openstack,网卡开启的多队列数等于虚机套餐的cpu核数
    def _get_virtio_mq_settings(self, image_meta, flavor):
        """A methods to set the number of virtio queues,
           if it has been requested in ex tra specs.
        """
        driver = None
        vhost_queues = None
        if not isinstance(image_meta, objects.ImageMeta):
            image_meta = objects.ImageMeta.from_dict(image_meta)
        img_props = image_meta.properties
        if img_props.get('hw_vif_multiqueue_enabled'):
            driver = 'vhost'
            vhost_queues = flavor.vcpus

        return (driver, vhost_queues)
  • S版openstack的nova代码nova/virt/libvirt/vif.py里增加了对内核的判断,如果kernel_version=3.x,多队
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值