当前位置:首页 > 虚拟机 > 正文

java虚拟机的原理


一、虚拟机是怎样运行的,原理是什么?

虚拟机运行:

指完全由软件和硬件系统功能模拟的计算机系统,完全运行在隔离的环境中。

原理:

第一个写好的Java源文件(.java文件)是如何一步步执行的,如下图ECJ)将Java文件编译成。Java字节码文件。

然后JRE将Java字节码文件加载到系统分配给JVM的内存空间中,执行引擎解释或编译组件文件,然后运行时编译器将其转换为字节码。到机器代码。

扩展信息:

虚拟机资源包括很多方面:CPU、内存、网络、磁盘。规划虚拟机时应考虑这些资源之间的关系。

CPU:

虚拟机的每个vCPU仅在一个物理核心上运行。运行更高、更多的vCPU有于提高应用程序性能。

更复杂的是,在ESXi服务器中,所有虚拟机共享物理CPU使用率。当ESXi服务器的核心数较多时,每个vCPU获得的核心份额更大,因此多核的性能会低于较高核心频率的性能。

如果虚拟机占用大量CPU,可以考虑为虚拟机分配第二个vCPU以运行得更快,因为只有多线程应用程序才能高效地使用多个vCPU。

RAM:

ESXi服务器中的RAM资源通常是有限的,因此在为虚拟机分配RAM时应该更加小心。VMkernel非常擅长处理RAM;它允许虚拟机使用ESXi服务器的所有物理内存,并尽量避免占用物理内存而不实际使用它。

一旦物理内存被完全使用,VMkernel必须决定哪些虚拟机将占用物理内存以及哪些虚拟机需要释放物理内存。这称为“内存回收”。有人担心,当虚拟机占用的物理内存恢复后,可能会影响虚拟机的性能。虚拟机回收的内存越多,相关风险就越大。

只分配虚拟机完成其工作所需的内存是明智的。分配更多内存会增加拥塞风险。另一方面,这里也有一个权衡,因为虚拟机操作系统使用未使用的内存作为磁盘缓存,大大降低了对磁盘系统的性能要求。

相比为数据库服务器和VDI桌面购买高性能磁盘阵列,为ESXi服务器上运行的虚拟机分配更多内存更加经济高效。关键是为工作负载分配足够的内存而不浪费虚拟机。

参考资料:

-虚拟机