如何提高虚拟机性能?利用这个特性来实现!

第一章 什么是绑核

线程绑核是指将线程绑定到特定的CPU核心上执行,而不允许线程在不同核心之间切换执行。这种操作可以有效地减少操作系统的上下文切换和负载均衡的开销,从而提高程序的执行效率。没有绑核的线程则可以在多个CPU核心上随意切换执行。这虽然可以让操作系统更加灵活地分配CPU资源,并提高系统的负载均衡性,但也会增加上下文切换的开销和CPU缓存的失效率。因此,线程绑核和没有绑核的区别主要在于执行效率和系统负载均衡的优化。需要根据具体的应用场景进行选择。

第二章 虚拟机绑核类型

2.1 不绑核

不绑核的情况下,虚拟机的线程在当前CPU资源池中按需分配CPU资源。此时一个虚拟机的线程,一方面要进入线程队列中等待分配时间片,而该线程队列中不仅有自身虚拟机的线程,还有其他虚拟机的线程,因此存在资源竞争。另一方面操作系统还要决策将该任务调度分配到哪个物理CPU上运行,然后要将线程的上下文切换到该CPU核中,存在切换的时间。但是由于这种分配方式较为灵活,不会预留CPU而浪费资源,因此对于CPU资源要求和处理延迟要求不高的场景使用。

2.2 绑核

绑核又分为三个方式,分别是绑核不独占线程绑核且独占核和绑核且独CPU。

2.2.1 绑核不独占

几乎不使用。相比于不绑核的情况只是将从CPU池中获取CPU资源变成了从指定的CPU核中获取CPU资源。此时,虚拟机的线程同样需要进入线程队列中等待分配时间片,线程队列中也同样可能存在其他虚拟机的线程,只是分配到的CPU核是固定的,减少了线程在不同的CPU核进行上下文切换的时间。虽然也存在和其他虚拟机的资源竞争,但是如果该CPU核上其他虚拟机的线程少,那么资源竞争就没有不绑核那么剧烈。由于这种情况对于处理延迟的提升不明显。

2.2.2 绑核且独占核

虚拟机绑核且独占核是指将一个或多个物理核心分配给一个虚拟机,并保证虚拟机是唯一能够使用这些核心的。这意味着在虚拟机运行期间,这些核心不会被分配给其他虚拟机或主机进程使用。这种方式通常是最常用的,即将虚拟机cpu与物理机cpu核进行绑定。绑核且独占核通常可以使用以下命令查看:

virsh vcpuinfo <id>VCPU:           0CPU:            3        State:          running        CPU time:       198781.4s        CPU Affinity:   0x8VCPU:           1        CPU:            2        State:          running        CPU time:       198781.3s        CPU Affinity:   0x4
  • VCPU编号:表示虚拟机中的第几个虚拟CPU,从0开始。
  • CPU编号:表示虚拟CPU当前绑定的物理CPU编号。
  • 状态:表示虚拟CPU的运行状态,包括running(运行中)blocked(阻塞中)等。
  • CPU时间:表示虚拟CPU从启动到现在运行的总时间。
  • CPU Affinity:表示虚拟CPU绑定的物理CPU核心,以16进制的形式表示。

如果是非绑核的虚拟机,则输出以下内容

VCPU:           0CPU:            -1State:          runningCPU time:       28.2sCPU Affinity:   0x0

或者使用vcpupin来确认,以下这种输出就是绑核虚拟机。

[root@kvm-host ~]# virsh vcpupin vm1VCPU:           CPU Affinity------------------------------------0:              0-31:              0-32:              0-33:              0-3

还可以通过查看xml文件来确认虚拟机是否绑核

<domain type='kvm'>  <name>examplevm</name>  <vcpu placement='static'>2</vcpu>  <cputune>    <vcpupin vcpu='0' cpuset='1'/>    <vcpupin vcpu='1' cpuset='2'/>  </cputune>  ...</domain>

<vcpu>标签定义了虚拟机的虚拟CPU数量,这里设置为2。<cputune>标签下面的两个<vcpupin>标签定义了虚拟机中的两个vCPU分别绑定在哪个CPU核心上,这里分别绑定在核心1和核心2上。

2.2.3 绑核且独CPU

绑核且独占 CPU 是指将整个物理 CPU 分配给一个虚拟机,并保证该虚拟机是唯一能够使用该 CPU 的。这意味着在虚拟机运行期间,该 CPU 不会被分配给其他虚拟机或主机进程使用。因此,两者的区别在于资源分配的粒度不同。虚拟机绑核且独占核是将核心级别的资源分配给虚拟机,而绑核且独占 CPU 则是将整个 CPU 分配给虚拟机。这意味着在绑定和独占 CPU 的情况下,虚拟机将获得更多的计算资源,但是这也意味着在虚拟机未使用 CPU 时,该 CPU 不能用于主机上的其他进程。在绑定和独占核的情况下,虚拟机只获得了核心级别的资源,因此,即使虚拟机未使用该核心时,该核心也可以用于主机上的其他进程。

第三章 如何创建绑核虚拟机

3.1 FS创建绑核虚拟机

在FuionSphere OpenStack中,创建规格时可以设置绑核。在该解决方案中,绑核虚拟机核非绑核虚拟机不能共numa部署,即某个numa部署了绑核虚拟机,再创建非绑核虚拟机就会失败。

3.2 kvm创建绑核虚拟机

1、使用virt-install命令创建虚拟机时,可以使用--vcpus--cpu-set选项来指定虚拟机的CPU数量和绑定。例如:

virt-install --name vm_name --vcpus 2 --cpu host-passthrough --cpu-set 0,1 ...

其中,vm_name是虚拟机的名称,2是虚拟机的CPU数量,--cpu host-passthrough指定使用宿主机的CPU特性,--cpu-set 0,1指定将虚拟机绑定到CPU核心0和1上。

或者,您可以在创建虚拟机时在XML配置文件中指定CPU绑定。在<vcpu>标签下添加以下行:

<cputune>  <vcpupin vcpu='0' cpuset='0'/>  <vcpupin vcpu='1' cpuset='1'/></cputune>

其中,vcpu指定虚拟CPU的编号,cpuset指定要绑定的CPU核心。

如果我的文章对你有帮助,欢迎关注我的同名公众号~

本文使用 文章同步助手 同步

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容