深入解析虚拟机运行原理与资源优化

创始人
2025-01-12 17:05:40
0 次浏览
0 评论

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

虚拟机操作:

是通过软件模拟出一个完整的具有完整硬件系统功能的计算机系统,运行在完全隔离的环境中。

原理:

最初编写的Java源文件(.java文件)的方式是一步步执行的,如下图所示。
首先,Java源文件经历这一步。
前端编译器(javac或ECJ)将.java文件编译为Java字节码文件。

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

扩展信息:

虚拟机资源涉及很多方面:CPU、内存、网络、磁盘。
规划虚拟机时需要考虑这些资源之间的关系。
否则,资源分配不当将导致虚拟机中的应用程序性能不佳。

CPU:

虚拟机的每个vCPU仅运行在一个物理核心上,因此CPU频率越高,虚拟机的速度就越快。
是。
颤抖。
高、更多的vCPU可提高应用程序性能。

另一个复杂的因素是,在ESXi主机中,所有虚拟机都使用相同的物理CPU。
ESXi主机的核心越多,每个vCPU的核心份额就越大。
因此,多核的性能会比核心频率高但数量少的情况更好。

如果虚拟机需要占用大量CPU时间,您可以考虑为虚拟机分配第二个vCPU。
但是,为虚拟机分配两个以上的vCPU并不一定会创建应用程序。
运行速度更快,因为只有多线程应用程序才能有效地使用多个vCPU。

RAM:

ESXi主机中的RAM资源通常是有限的,因此在为虚拟机分配RAM时需要非常小心。
VMkernel在处理RAM时非常聪明;它允许虚拟机使用ESXi主机的所有物理内存,并尝试避免在未实际使用的情况下占用物理内存。

耗尽物理内存后,VMkernel必须确定哪些虚拟机可以保留物理内存以及哪些虚拟机需要释放物理内存。
这称为“内存回收”。
当虚拟机占用的物理内存被回收时,存在影响虚拟机性能的风险。
虚拟机回收的内存越多,相应的风险就越大。

最明智的做法是仅在虚拟机需要执行其工作时为其分配足够的内存。
分配更多内存会增加收集的风险。
另一方面,当虚拟机操作系统使用未使用的内存作为磁盘缓存时,会显着降低对磁盘系统的性能要求,从而引发这里的权衡问题。

对于数据库服务器和VDI桌面,与购买高性能磁盘阵列相比,为虚拟机分配更多内存(在ESXi主机上运行更少的虚拟机)通常更具成本效益。
分配足够的内存很重要适用于虚拟机工作负载而不会造成浪费。

参考文献:

百度百科-虚拟机

java是做什么的啊

服务器应用程序管理系统的标准。

Java语言完全兼容PC。
它在内存缩减方面取得了突破和创新,直接工作在各种电子产品中,被网络上的任何设备识别,充分利用网络资源。
为PC时代的发展创造了强有力的条件。

随着IT行业的发展,很多企业的计算机应用也在转型。
企业中使用的计算机模型逐渐向更小的客户端、更大的服务器和更大的数据库方向发展。
相应增加的方向。

此外,结合Java语言的独特特性及其对于在各种服务器上开发应用程序的好处,J2SE企业版为企业环境中的桌面计算提供了良好的解决方案。
平台。

Java语言发展了Javaservlet和SQL-J技术,以及与数据库紧密通信的JSP技术。
随着JSP技术的发展,JAVA语言的网络应用变得更加实用、高效、快捷,成为IT行业广泛应用的技术。

JSP使用Java作为服务器端语言,并结合JAVASCRIPT和其他客户端语言,使其更容易在网络浏览器中显示。

在在线远程学习方面,JAVA改变了基于MicrosoftFrontPage或HTML语言的传统网页形式,使在线远程学习更加动态、方便、安全,丰富了在线学习的工具和范围。
远程学习。

Java的贡献和影响

Java语言是一种随着时间的推移而快速发展的计算机语言程序。
它以其简洁严谨的结构和简洁性,深刻地展示了编程的本质。
编写语法为其未来的开发和支持提供了保证。
由于它提供了对Web应用程序和多媒体访问的支持,因此它将促进Internet和企业网络上的Web应用程序。

此外,为了支持Java的发展并鼓励Java社区的参与,Sun在JavaOne开发者大会,它将开源Java以鼓励更多人参与。
在Java社区的活动中。

在Java社区和IBM等全球技术合作伙伴的支持下,Java技术继续在创新和社会进步中发挥强大而重要的作用,并且随着编程复杂性的下降,更多的专业人士专注于编写爪哇。
语言和结构设计。

热门文章
1
Java字符串分割技巧:轻松获取逗号前的... java任意一个字符串,当它碰到第一个逗号时,返回逗号前面的字符串,例如:str...

2
SQL多表连接查询全解析:JOIN语句应... sql多表关联查询在执行SQL多表连接查询时,可以使用JOIN语句将多个表连接在...

3
Java中字符串类型详解:String与... 变量有字符类型,为什么没有字符串类型??基本类型:charshort、int、l...

4
JavaSE与JavaEE:从基础到企业... javase 和javaee的区别?JavaSE和JavaEE...

5
Java程序员面试必知:核心技术问答与技... java编程程序员技术面试常见面试?随着互联网的不断发展,Java开发已经成为很...

6
Java.exe与Javaw.exe:区... 程序中java和javaw有什么区别java和javaw的区别:两者都是Java...

7
深入解析:Java中的javax包及其与... JAVA导入时,什么是javax?awt是java1.0,swing是java2...

8
Java GUI教程:创建带随机数生成功... 求助:用Java设计一个界面,要求添加5个按钮和一个显示窗口能够生成随机数!急急...

9
Java保留字详解:类型、语句、修饰符与... Java有没有goto?goto是Java保留字,目前在Java中未使用。其实g...

10
Java标识符规则详解:命名规范与组成要... java中标识符由什么组成?标识符?关键词是什么?谢谢!标识符是用于命名变量、类...