虚拟机的运行:
指具有完整的硬件系统功能、通过软件模拟、在完全隔离的环境中运行的完整计算机系统。
原理:
如何一步步执行原来写好的Java源文件(.java文件),如下,首先是JavaSource文件通过前端。编译器(javac或ECJ)将.java文件编译为Java字节码文件。
然后JRE将Java字节码文件加载到系统分配给JVM的内存区域中,然后执行引擎解释或编译class文件,然后即时编译器将字节码转换转换成机器码。
高级信息:
虚拟机资源包括很多方面:CPU、内存、网络和磁盘。规划虚拟机时应考虑这些资源之间的关系。否则,资源分配不当将导致虚拟机内的应用程序性能不佳。
CPU:
虚拟机的每个vCPU仅运行在一个物理核心上。CPU频率越高,虚拟机运行速度越快。更多的vCPU有助于提高应用程序性能。
一个更复杂的因素是,在ESXi服务器中,所有虚拟机共享物理CPU的使用率。ESXi服务器拥有的核心越多,每个vCPU获得的核心份额就越大。因此,多核的性能比核心频率高但数量少时要好。
如果虚拟机需要使用大量CPU时间,可以考虑为虚拟机分配第二个vCPU。然而,为虚拟机分配两个以上的vCPU并不一定能够成功地让应用程序运行得更快,因为只有多线程应用程序才能有效地使用多个vCPU。
RAM:
ESXi服务器上的RAM资源通常是有限的,因此在为虚拟机分配RAM时需要特别小心。VMkernel在处理RAM方面非常聪明;它允许虚拟机使用ESXi服务器的所有物理内存,并尝试避免在未实际使用的情况下使用物理内存。
物理内存完全耗尽后,VMkernel必须确定哪些虚拟机可以保留物理内存以及哪些虚拟机必须释放物理内存。这称为“内存回收”。当虚拟机占用的物理内存被回收时,存在影响虚拟机性能的风险。从虚拟机回收的内存越多,相关风险就越大。
最明智的做法是只分配虚拟机运行所需的内存。分配额外的内存会增加捕获的风险。另一方面,如果虚拟机操作系统使用未使用的内存作为磁盘缓存,那么磁盘系统的性能要求将会显着降低,因此这里存在一个权衡问题。
对于数据库服务器和VDI桌面来说,为虚拟机分配更多内存从而在ESXi服务器上运行更少的虚拟机通常比购买高性能磁盘阵列更具成本效益。关键是为虚拟机工作负载分配足够的内存而不浪费它。
参考资料:
-虚拟机
CPU虚拟化技术是指将单个计算机软件环境划分为多个独立分区,每个分区可以根据需要模拟一台计算机的技术。其技术本质是跨中间层实现计算资源的管理和重新分配,以实现资源利用率的最大化。
CPU虚拟化技术的优点在于,虽然虚拟化可以通过软件来实现,但如果CPU硬件支持的话,执行效率会大大提高,而且虚拟化还可以支持64位操作系统。
扩展资料:
虚拟化技术原理
虚拟机对真实的计算环境进行了抽象和模拟,VMM有如各当需要出现时,虚拟机被分配一组数据结构来管理其状态,包括全套虚拟处理器寄存器、物理内存使用情况、虚拟设备状态等。
当VMM调度虚拟机时,它会将其某些状态恢复到主机系统。并非所有状态都需要重置:例如主机的CR3寄存器存储的是VMM设置的页表的物理地址,而不是GuestOS设置的值。
主机处理器直接执行GuestOS机器指令。由于GuestOS运行在低特权级别,当访问主机系统的特权状态(例如写入GDT寄存器)时,权限不足会导致主机处理器抛出异常,该异常会自动返回给VMM。此外,外部中断的到来也会导致VMM执行。
参考来源:中关村在线-T博士谈你不懂的CPU专业术语