本帖最后由 心芝雨 于 2019-9-16 06:27 编辑
关键几条
不是模拟器设置cpu(虚拟化cpu)越多,其性能就越好,因为线程切换会耗费大量的时间;应该根据负载需要分配最少的 模拟器设置cpu数量。
主机上的模拟器设置cpu总数不应该超过物理 CPU 内核总数。不超过的话,就不存在 CPU 竞争,每个 vCPU 线程在一个物理 CPU 核上被执行;超过的话,会出现部分线程等待 CPU 以及一个 CPU 核上的线程之间的切换,这会有 overhead。
将负载分为计算负载和 I/O 负载,对计算负载,需要分配较多的 模拟器设置的cpu数量,甚至考虑 CPU 亲和性,将指定的物理 CPU 核分给给这些客户机
虚拟机和物理CPU大概 使用情况
1、当系统内安卓模拟器启动后设置的cpu总数少于物理CPU的核数(包括超线程)时,模拟器的虚拟化管理系统为模拟器虚拟分配的cpu资源不超过一个物理CPU核。 模拟器的cpu与物理核的分配关系可以是绑定的,也可能是动态的。
比如服务器有20个核心,你创建了2个两个模拟器窗口,每个模拟器分配 4个虚拟cpu(简称vCPU),那么这两个模拟器 最多能够使用服务器的8个核心。
2、当系统内的模拟器所需要的虚拟设置的CPU核大于物理CPU核数时,虚拟化管理系统首先按照时间片轮流调度一遍,然后如果还有剩余的CPU资源,则给所需要的虚拟CPU。 比如系统配置了40个vCPU,只有20个物理核。那么平均每个虚拟cpu(模拟器设置的)获取一个核心50%的资源。由于多开时 有些一些窗口忙,一些窗口空闲,虚拟化系统会在一个调度周期内,划分出若干时间片,轮流给每个vCPU使用。忙的vCPU可以