kvm网卡模式_java软中断原理

kvm网卡模式_java软中断原理玩转KVM: 了解网卡软中断RPS

大家好,又见面了,我是你们的朋友全栈君。

本篇给大家讲网卡中断如何提高虚拟机性能。
KVM的网卡软中断技术介绍
(1)硬中断

由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。

(2)软中断

为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。

(3)聊聊RSS,RPS ,RFS

receive side steering,RSS利用网卡的多队列特性,将每个核分别跟网卡的一个首发队列绑定,以达到网卡硬中断和软中断均衡的负载在各个CPU上。他要求网卡必须要支持多队列特性。

RPS是receive package steering,类似rss机制,通过直接转发包到各个cpu进程上,在软件级实现中断,有助于防止单个网络接口卡的硬件队列成为网络流量的瓶颈。

receive flow steering,RFS需要依赖于RPS,他跟RPS不同的是不再简单的依据packet来做hash,而是根据flow的特性,即application在哪个核上来运行去做hash,从而使得有更好的数据局部性。
玩转KVM: 了解网卡软中断RPS
在这之前,软中断只能在硬中断所在CPU上处理,使用RPS后,网卡软中断就可以分发到其他的CPU上去做处理了。

但是,我们知道,任何一个优化特性都不是普遍适用的,都有他特定的场景来应用。

很多人对此可能会有疑惑,那很多优化功能不是都已经作为默认配置了么,如果不是普遍适用的,干嘛还要作为默认配置呢?

其实很简单,一个优化特性可以作为默认配置,依据我的理解,只需要满足下面这些特征即可:

1.对某些场景可以显著提升性能

2.对大部分场景无害

3.对某一部分场景可能会损伤性能

4.所以Linux的很多配置都是可以灵活配置供选择的
KVM的网卡软中断实战
如果要设置RPS, RFS,则要满足以下条件:

1、虚拟机需要多线程

2、虚拟网卡需要支持多队列

系统默认是不开RPS

0(不开启rps功能)
玩转KVM: 了解网卡软中断RPS
one cpu per queue(每队列绑定到1个CPU核上)
玩转KVM: 了解网卡软中断RPS
all cpus per queue(每队列绑定到所有cpu核上)
玩转KVM: 了解网卡软中断RPS
总结
在极端情况下RPS可以获得非常好的性能,可惜实际情况下反而对整机整体负载有所妨害,主要是进程调度导致的(1)cpu缓存丢失导致,所以在应用负载已经非常高的情况下开启RPS是没意义的做法(开启RFS会稍微好转但是作用也不大)。

下图所示为不开启RPS的情况。可见左侧cpu存在较高的%sys负载,是因为网卡队列都绑定在左侧的几个cpu上。
玩转KVM: 了解网卡软中断RPS
下图所示为同时开启RPS的情况。可见%sys较为均衡,同时(2)整机负载略有上升。这是因为:收到网卡中断的CPU会向其他CPU发IPI中断,这体现在CPU的%irq上需要处理packet的cpu会收到NET_RX_SOFTIRQ软中断,这体现再CPU的%soft上。请注意,RPS并不会减少第一个CPU的软中断次数,但是会额外给其他的CPU增加软中断。他减少的是第一个CPU的软中断的执行时间,即软中断里不再需要那么多的时间去走协议栈做包解析,把这个时间给均摊到其他的CPU上去了。
玩转KVM: 了解网卡软中断RPS
所以优化还是要按实际情况来考虑的哦。
附录:
玩转KVM: 了解网卡软中断RPS
文章来自公众号:睿江云计算
玩转KVM: 了解网卡软中断RPS

转载于:https://blog.51cto.com/13475644/2380539

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106873.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月21日 下午11:20
下一篇 2022年4月21日 下午11:20


相关推荐

  • 360浏览器访问https网站直接跳转 se://error/ 或者se://errorpage/问题(无法打开网站,网页走丢了)解决方法

    360浏览器访问https网站直接跳转 se://error/ 或者se://errorpage/问题(无法打开网站,网页走丢了)解决方法最近发现 360 浏览器访问某个 https 网站直接跳转 se error 或者 se errorpage 其他浏览器 例如 chrome 就可以正常访问那个网站 所以问题出在浏览器这块了 解决方法有两个 用其他浏览器 例如 chrome 就可以正常访问那个 https 网站 所以问题出在浏览器这块了 经过查询资料和测试发现 这个问题的正确解决办法有两个 1 如果安装了 IE8 等古老浏览器可以在 IE 浏览器 Internet 设置里面 高级里面增加浏览器对 TLS1 11 2 的支持

    2026年3月19日
    2
  • 软件开发入门自学指南[通俗易懂]

    软件开发入门自学指南[通俗易懂]每天都看到很多对编程感兴趣的人在问是不是可以自学软件开发,或者应该怎么自学编程才能入门。在这篇文章里,我将尝试重现一个初学者在学习计算机编程时可能会碰到的问题,并尽量提供相应的解决思路,希望对初学者有所帮助。如果你在看完这篇文章后还是有些疑惑,欢迎点击这里咨询我。目录编程可以自学吗?学习编程需要什么基础?什么是编程语言?什么是程序?我应该学习哪种编程语言?编程的核心思维是什…

    2022年4月19日
    55
  • 计算机组成原理–浅谈计算机性能

    计算机组成原理–浅谈计算机性能本篇文章属于计算机组成原理的开篇之作,主讲影响计算机性能的因素与提升的计算机性能的路径。

    2022年7月3日
    25
  • Linux命令—tail 加过滤功能

    Linux命令—tail 加过滤功能tail-n 行数-f 文件夹路径以及名字,用于查看log 后面可以追加 |grep +名字 用于过滤ps aux|grep 文件 查看执行情况 tail-n40-f/home/logs/info.log|grepkeyword …

    2022年5月23日
    202
  • fileinputstream java,使用url的Java fileinputstream

    fileinputstream java,使用url的Java fileinputstreamHowtoinputinthefileinputstream,afiletourl?IentertheurlintheFileinputstream,buttheoutputoftheURLiswrong,becausethelinkslashesareturnedbackwardslike-from/to\andthe…

    2022年5月6日
    89
  • idea 2021.11 激活码_最新在线免费激活

    (idea 2021.11 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月28日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号