64位计算中的Java虚拟机(JVM)性能测试

64位计算中的Java虚拟机(JVM)性能测试,第1张

随着DEC(Digital Equipment Corp)公司Alpha处理器在 年末的发布 就意味着这个世界开始进入 位计算的时代 紧接着 全球几大主要计算机公司 如IBM Hewlett Packard(惠普) Fujitsu(富士通) Sun Microsystems 也发布了各自相应的产品进入到 位 这个市场 在 年 Fujitsu旗下的HAL Computer发布了业界第一台基于 位SPARC CPU的工作站 SPARC 此后不久 Sun发布了大众期盼已久的Ultra Ultra 工作站 其内置了Sun的 位UltraSPARC处理器 时间转换到 年 IBM发布了其第一个 位PowerPC RISC芯片 RS 在 年 IBM对RS 进行改良 使其支持SMP 这就是Power 如今看起来 对 位计算来说 其整整花了五年的时间 才在 年开始大量进入市场 在本文中 将主要涉及两个现在广泛应用的 位平台 AMD 与PowerPC 并分别使用IBM与Sun Microsystems这两个Java语言巨头提供的Java虚拟机(JVM) 通过SPECjvm 与SPECjbb 的测试 来评价 位与 位中JVM的性能 (注 SPECjvm 与SPECjbb 来自Standard Performance Evaluation Corp )AMD 是Advanced Micro Devices(AMD)公司的 位平台 其扩展了工业标准的x 指令集架构 并设计在不降低任何性能的前提下 于 位模式中完全兼容现有的x 应用程序与 *** 作系统 在 年 月 AMD发布了Opteron 遵循AMD 架构的第一款处理器 与其同时 年 IBM发布了PowerPC 其是源自IBM Power 双核CPU的单核处理器 从此 IBM把 位PowerPC架构带到了桌面系统与低端服务器领域 另外要说明一点 PowerPC 也像Power 一样 可在不降低性能的前提下 本地执行 位指令 不久之后 在 年 月 由Apple Computer公司设计 基于PowerPC CPU的Power Mac G 电脑上市 Java背景介绍 在第一款 位处理器诞生不久 Java技术也出世了 并由此改写历史 Java是一种健壮的 通用的 面向对象的 构架中立的 可移植的 安全的 多线程的编程语言 并带有隐式内存管理功能 Java面向对象的特性在很大程度上与C++相似 但加入了更多的接口与扩展以创建更具灵活性的解决方案 与C++不同的是 Java不支持 *** 作符重载 多重继承和自动类型强制 Java通过广泛的运行时检查和内置的例外处理机制 达到健壮性的目的 编译器所生成的只是字节码指令 其是独立于任何特定平台的 这样就保证了架构中立性 可移植性是通过指定基本数据类型大小和其算术 *** 作符的行为来达到的 例如 int总表示一个有符号的 位整数 而float总表示一个 位的IEEE 浮点数 Java同时也有一系列的同步原语 其基于广泛使用的条件变量范式 自动内存垃圾回收(GC)简化了Java编程的难度 并极大地降低了bug的数目 但也使运行机制稍微复杂了点 在 年 也就是DEC公司发布第一款 位处理器的前一年 Sun Microsystems开始了一个名为 the Green Project 的计划 目的是要抢占 下一波计算 的先机 并为此提前做好准备 计划得出的最初结论是 移动数字设备与计算机的融合将会很快出现 在 年的夏天 计划小组演示了 (星 ) 一个通过动画式触摸屏控制的交互性手持娱乐设备 通过使用Oak 一种全新的编程语言 这个设备可控制很多不同的平台 而由James Gosling开发的Oak 其最主要的特点在于它是一个彻底独立于处理器的语言 在往后的几年中 这种语言被用于Internet 之后成为大众所知的Java 而 Oak 这个名字则因为版权问题从此消失了 在 年 月 Sun正式宣布Java的诞生 这是一种程序员只需编写一次 但却可在多种 *** 作系统及多种硬件平台上运行的语言 编写一次 随处运行 在 年 Sun发布了Java开发工具包(JDK ) 其后不久 个主要的 *** 作系统开发商宣布支持Java技术 当中也包括Microsoft 其以每年大约 万美元取得五年时间的Java许可协议 在 年 月 Sun发布了Java平台的第一个即时(JIT)编译器 在 年 月 JDK 面世 在随后的三周时间里 达到了 万次的下载量 到了 年初 这个数字达到两百万 在 年末 Java 平台发布了 大概半年后 也就是 年年中 Sun发布了三个版本的Java平台 J ME(Java Micro Edition) 应用于移动 无线及有限资源的环境 J SE(Java Standard Edition) 应用于桌面环境 J EE(Java Enterprise Edition) 应用于基于Java的应用服务器 此后 广泛应用的Java技术出现了一些framework 如Enterprise JavaBeans (EJB)和JavaServer Pages (JSP) Java技术的随后一次升级 是出现在 年 月的J SE 几周后 其获得了Apple公司Mac OS X的工业标准的支持 J SE 发布于 年 月份 对Java平台来说 这是一个几乎全新的产品 与J SE 相比 其多了近 %的类和接口 在这些新特性当中 还提供了广泛的XML支持 安全套接字支持(通过SSL与TLS协议) 全新的I/O API 正则表达式 日志与断言 在 年 月 是Java最近的一次发布 J SE (内部版本号 ) 代号 Tiger 现已提供公开下载 Tiger包含了从 年发布 版本以来的最重大的更新 其中包括泛型支持 基本类型的自动装箱 改进的循环 枚举类型 格式化I/O及可变参数 Java虚拟机(JVM)是一个软件规范 相关软件有责任遵守它 以运行编译为Java字节码的程序 JVM是一个抽象的计算机制 并独立于 *** 作系统 具有编译后的程序体积小 可防止执行恶意代码等特点 其没有预先假设基于任何特定的实现技术 不管是硬件还是 *** 作系统 通常我们有几个常用的JVM软件 其 位与 位版本性能有所不同 但它们都包括JIT编译器和垃圾回收功能(GC) JIT编译器从JDK 开始就是JVM的一部分了 当时Java只是用于浏览器客户端动态效果显示的一种技术 JIT编译器实现了程序执行之前Java字节码到硬件机器码的动态翻译 其背后的思想在于 相比Java源代码 字节码更小也更容易编译 但付出的代价是需要在Java字节码编译为机器码时花上一点时间 但与直接把Java源代码编译为机器码相比 时间还是少得多的 在 位与 位的JVM中 相应的JIT在把Java字节码编译为最终的机器码时 所花的时间稍微有所不同 但还能进行一些优化 另外 在IBM与Sun这两个版本的客户端与服务端程序上 总体性能也会有所不同 垃圾回收是一种自动内存管理系统 它会收回对象不再需要使用的内存 从软件工程的角度来看 垃圾回收最大的一个好处就是 程序员不用再 *** 心那些低级的内存管理细节了 同时 垃圾回收也去除了源代码中两个最大的bug 内存未释放(内存泄漏)与过早释放(指针崩溃) 内存回收在Java程序运行期间占了一个很重要的部分 因为它必须被经常执行以释放对象不再访问的Java堆 由于在 位与 位平台上 Java堆中的数据大小会有所变化 所以会因为 位与 位JVM的性能差异 导致相应垃圾回收的性能也会有所不同

位背景介绍 位计算有几个重要组成部分 第一就是 位寻址 实际上 位寻址是通过 位整数寄存器达到的(或RISC中所指的通用寄存器) 位寄存器允许 位的指针装入到单个的寄存器中 而 位的指针 才是可以寻址访问更大内存的实质所在 当 位处理器只能访问到 字节或 GB内存时 位处理器理论上却可寻址访问 字节或 × GB内存 在现代的 位系统中 可寻址的内存的实际限制通常比理论值低一点 具体依赖于特定的硬件架构和 *** 作系统 举例来说 在基于Linux的 *** 作系统中 受限于当前Linux内核数据结构的设计 可寻址的内存最多为 字节或 GB 位计算的第二个重要方面 就是 位整数运算 要提醒的是 这可不是简单地因为有了可存储更多更大整数量 更宽的 位整数寄存器而带来的必然结果 其最直接的影响就是对那些需要处理密集大数值整数运算的程序而言 可带来性能上的飞跃 第三个方面 即 位计算的特性 是 位 *** 作系统与程序的应用 相关的软件必须全面支持硬件的 位特性 包括 位寻址和运算 通常还有一些附带的好处 如 可 *** 作更多更大的文件 管理更大的磁盘等等 位计算所带来的影响 目前已在许多程序中得到了体现 数据库服务器现在可寻址更大的内存 以维持更大的缓冲池 数据缓存 或在内存中进行排序以减少相关的I/O *** 作 也能给每个用户分配更多的内存 支持更多的用户 或对更大的数据文件进行 *** 作 仿真或其他计算密集的程序也将从中受益 如 现在可以在内存中分配更大的数组了 最后 别忘了还有大量的Java程序 J EE应用服务器 现在也能充分享受到 位计算所带来的好处了 位计算的主要缺点是 与它们 位的兄弟相比 位二进制文件一般都更大 因此 最终生成的机器码体积也更大 在系统缓存与旁路转换缓存(TLB)大小不变的情况下 可能会同时降低两者的命中率 这就是说 在一定程度上性能会有所损失 性能评测 此处用于测试 位与 位JVM性能的系统 是两台 位双CPU工作站 一台是基于AMD 技术的Opteron系统 而另一台是基于PowerPC 的Apple Power Mac G 两台工作站都分别运行基于Linux的 位 *** 作系统 受测试的JVM分别来自于IBM和Sun 将使用SPEC的SPECjvm 和SPECjbb 来测试相应JVM的性能 其中SPECjvm 使用了以下项目测试客户端性能 ·_ _press 一个流行的压缩程序 ·_ _jess 一个Java版的NASA CLIPS基于规则的专家系统 ·_ _db 数据管理基准测试软件 ·_ _javac JDK Java编译器 ·_ _mpegaudio 一个MPEG 音频解码器 ·_ _mtrt 一个对图像文件进行处理的双线程程序 ·_ _jack 一个分析程序生成器 SPECjbb (Java商业基准程序)是一个用于服务端的基准测试程序 其模仿了三层体系结构 是一个通用类型的Java服务端应用程序 通过运行SPECjvm 以秒为单位记录了每个基准测试的运行时长 时间越短越好 所有SPECjvm 测试的堆大小因JVM而有所变化 从最小值 MB至最大值 MB 在SPECjbb 测试中 记录了在三种不同堆大小时的每秒执行 *** 作数 更高的值代表更高的性能 每一个测试程序都运行三次 取成绩最好的一次作为最后的结果 图 与图 显示了在AMD 平台上 Linux版本的Sun Java Standard Edition Development Kit (J SE )在SPECjvm 和SPECjbb 中 位与 位的性能测试结果 在SPECjvm 测试中 只有三项 _ _press _ _mpegaudio _ _jack 在 位版本的JVM上比 位表现出更佳的性能 在SPECjbb 中 位版本的性能只在有足够堆大小的情况下 才表现出更高的性能 其中在堆大小为 MB时 因为某些活动数据在 位JVM版本中体积更大 导致垃圾回收动作更频繁 从而降低了程序性能

图 图 图 与图 显示了在AMD 平台上 Linux版本的IBM Developer Kit for Linux Java Technology Edition Version GA在SPECjvm 和SPECjbb 中 位与 位的性能测试结果 其中 基准测试程序中有三项 _ _db _ _javac _ _jack 在 位环境下表现出了更佳的性能 另外 在SPECjbb 测试中 当面对三个不同大小的测试堆时 位IBM版本的JVM都没有表现出比 位版本更好的性能 图 图 图 与图 显示了在PowerPC 平台上 IBM Developer Kit for Linux Java Technology Edition Version GA在SPECjvm 和SPECjbb 中 位与 位的性能测试结果 此处 在所有SPECjvm 和SPECjbb 的测试中 位JVM的性能都不及 位平台 图 图 结论 基于运行Linux *** 作系统的PowerPC 平台的测试结果 表明如果在此平台上使用IBM的JVM 那么 那些不需要 位特性的程序 还是让它们运行在 位JVM中吧 因为在此平台的所有测试结果中 位JVM的性能都比 位平台低 而基于运行Linux *** 作系统的AMD 平台的测试结果 表明不管是Sun还是IBM的JVM 位与 位的性能都在伯仲之间 要注意的是 性能的差异是依赖于具体的应用程序与JVM的 如果需要最佳性能 就必须在某个特定的执行环境中测试某个特定的程序 以评价转换到 位所带来的潜在性能提升 有几件事情需重点注意 第一 尽管SPECjvm 与SPECjbb 都是工业标准的基准测试程序 但它们的测试范围有限 因此 就测试结果而言 只对一部分的Java程序正确 而不是所有 第二 随着 位计算越来越被人们接受 我们期待 位程序会有所改进 包括 位JVM 也许其在将来会大幅提高性能 第三 此处只组合测试了几种特定的硬件平台 *** 作系统与JVM 因此 如果要进一步地说明问题 恐怕只有在 位Windows XP/ 及 位Mac OS X上的进行JVM基准测试了 lishixinzhi/Article/program/Java/hx/201311/26587

对系统性能要求严苛。oracle在虚拟机上没有物理机性能好是因为对系统性能要求严苛造成的。Oracle,全称OracleDatabase,是美国甲骨文公司的一款关系型数据库管理软件。该数据库管理软件具有可移植性好、使用方便、性能强大等特点,是世界上广泛使用的关系型数据库管理软件。

可以 如果你类似使用vmware 这样的 只要设置虚拟机的IP 物理通信 直接分配一个局域网IP地址给它即可 初次之外你要确保机器内存够用 虚拟机跑起来 加上数据库至少8G内存吧 反正我8G的开虚拟机 加三个eclipse 基本要挂(运行状态)

摘 要十堰日报社通过虚拟化技术构建了服务器技术运维平台,提高了整体的可靠性。关键词虚拟化技术;虚拟服务器一、背景报社经过多年的信息化建设,大批业务系统相继上线,服务器数量逐年增多,产生了一些问题:(1)成本高。硬件成本较高,运营和维护成本高,包括数据中心空间、机柜、空调、耗电量等。(2)可用性低。因为每个服务器都是单机,如果配置为双机模式的话,造价成本会更高。(3)系统维护和升级或者扩容时候需要停机进行,造成应用中断。(4)缺乏可管理性,系统数量太多难以管理,新服务器和应用的部署时间长,大大降低服务器重建和应用加载时间。(5)兼容性差,系统和应用迁移到新的硬件需要和旧系统兼容的系统。对于这些情况,利用虚拟化技术能得到很好的解决。使用虚拟化技术,可以节约硬件的投资,简化硬件维护 *** 作。实现了虚拟化还可以为各种系统的实验提供方便的硬件平台。将来如果构建云平台,虚拟化是必要的基础。
二、服务器虚拟化技术
1.服务器虚拟化概念。关于服务器虚拟化的概念,各个厂商都有自己不同的定义,然而其核心思想是一致的,能够通过区分资源的优先次序,并随时随地能将服务器资源分配给最需要它们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储备的资源。
2.服务器虚拟化的技术特性。虚拟化技术不但可以解决数据管理的难题,还可灵活更新软件、数据和硬件 *** 作平台。有了虚拟化技术,一台物理服务器可以被“划分”成数台“虚拟”的机器,每台都能独立运行自己的 *** 作系统,从而避免传统的“一台服务器+一种应用”的孤岛模式。分区。在单一物理服务器上运行多个虚拟机。隔离。在同一服务器的虚拟机之间相互隔离。封装。整个虚拟机都保存在文件中,而且可以通过移动和复制这些文件的方式来移动和复制该虚拟机。相对一间独立。无需修改即可在任何服务器上运行虚拟机。
3.服务器虚拟化的优越性。一是减少服务器的数量,提供一种服务器整合的方法,减少初期硬件采购成本。二是简化服务器的部署、管理和维护工作,降低管理费用。三是提高服务器资源的利用率,提高服务器计算能力。四是通过降低空间、散热以及电力消耗等途径压缩数据中心成本。五是通过动态资源配置提高IT对业务的灵活适应力。六是提高可用性,带来具有透明负载均衡、动态迁移、故障自动隔离、系统自动重构的高可靠服务器应用环境。七是支持异构 *** 作系统的整合,支持老应用的持续运行。八是在不中断用户工作的情况下进行系统更新。九是支持快速转移和复制虚拟服务器,提供一种简单便捷的灾难恢复解决方案。
三、方案选择
业界比较主流的虚拟化方案为VMware 公司的vSphere、微软公司的Hyper-V和Critx公司的XenServer。我们首先排除了Critx公司的XenServer。因为这个产品主要优势在LINUX系统平台上,而我们主要的信息系统运行现在WINDOWS系统上。据了解,XenServe的市场份额占有比较低,采用市场份额不高的产品对信息系统本身就是一个风险。根据厂商提供的产品参数,我们就vSphere和Hyper-V的产品性能做了比较认真做了比较。虽然觉得vSphere在技术指标上比Hyper-V更优越些,但综合考虑,还是决定采用Hyper-V,原因如下:(1)高级内存管理:虽然vSphere虚拟机内存动态可以节约资源,但会降低虚拟系统的性能;(2)高级储存管理:因暂时不考虑虚拟化数据库服务器,此项可以暂不考虑;(3)高I/O 可扩展性、主机资源管理、灵活的资源分配:主要考虑的是虚拟化轻负载服务器,影响不大;(4)虚拟化安全技术:对于非文件服务器,这个问题影响比较小。我们的技术人员对于微软的产品比较熟悉,Hyper-V对于经验丰富的WINDOWS管理员来说是非常易于部署和管理的。而vSphere则需要进行培训,这将是增大时间和经费成本。因此,我们认为采用低成本的Hyper-V基本可以达到项目实施的要求。
四、项目执行
(一)项目目标
报社内部的应用系统主要有采编业务、广告业务、发行管理、财务等各种应用系统。各系统基本使用单独的服务器,关键业务还有备份服务器。各系统基本为应用服务器加数据库的架构。项目的目标是将轻负荷的应用服务器虚拟化,将数据库统一。这样既可减少硬件的的支出,也可保证系统性能和数据的安全。
(二)实现步骤
1.建立虚拟机域,安装虚拟机服务器。为了管理方便和安全性,我们新建了一个独立的虚拟机宿主服务器的域。微软有一个虚拟机宿主机的管理程序Virtual Machine Manger Server(VMM),可以对多台虚拟宿主机和其上运行的虚拟机进行统一管理,并可以将虚拟机在不同的宿主机之间进行迁移,还可以定义一系列的任务实现系统维护的自动化。
微软的的Hyper-V服务器安装可以采用:单纯的MS Hyper-V Server安装,这种方法占用内存最小,但设置麻烦,而且很难使用本地界面管理虚拟机服务;使用Window 2008 Server的Hyper-V服务器角色。这种方法会多占用内存,但管理非常方便,并且可以使用Window 2008 Server的许多其他功能。因此,我们采用了Window 2008 Server的Hyper-V服务的形式建立了虚拟机。
2.转化物理机。使用微软解决方案最大的便利是可以使用其物理机转化Agent,方便实现原有物理服务器的转化。VMM2008提供了自动流程,可以以设定虚拟机,远程安装转化Agent,自动转化,自动删除Agent,自动部署虚拟机,自动关闭物理机,并启动虚拟机,且所有的参数完全保持一致。从用户的角度只是感到服务器有一段宕机时间,完全不会感觉到服务器的迁移。
3.实施效果。我们使用一台域控制服务器,三台虚拟化宿主机,一台数据库服务器,共虚拟化了8台服务器。包括广告管理系统服务器、发行管理系统服务器、杀毒软件服务器、SNMP监控服务器等物理服务器。三台虚拟机的CPU使用率基本维持在10%之下,系统运行稳定。
五、结论
我社通过虚拟化技术构建了高可用性的技术运维平台,用有限的资金实现了对当前服务器系统的升级,同时又具有灵活的、可变拓展空间,留足了扩展空间,为报社事业发展做好了技术准备。
参 考 文 献
[1]董嘉男.Windows Server 2008 Hyper-V配置与管理[J].清华大学出版社
[2]胡嘉玺.虚拟智慧:VMware vSphere运维实录[J].清华大学出版社
[3][美]吕斯特等著.陈奋译.虚拟化技术指南[J].机械工业出版社
[4]王春海.中小企业虚拟机解决方案大全[J].电子工业出版社

每台虚拟机的数据库并不完全一样,这主要取决于虚拟机的用途和需求。在虚拟机中安装数据库的主要目的是利用虚拟化技术的灵活性,为应用程序提供独立的数据库环境。因此,每台虚拟机上的数据库可以根据需要进行不同的配置,例如使用不同版本的数据库、不同的数据结构或设置不同的安全性等级。这样可以更好地满足不同应用的需求,提高服务器资源的使用效率。另一方面,对于某些特定的虚拟机,例如在虚拟化集群中的数据库服务器,可能需要保证它们的数据库完全一致。在这种情况下,可以采用基于镜像、克隆和备份等技术,确保每个虚拟机拥有相同的数据库环境。
总之,每台虚拟机的数据库并不完全一样,这取决于虚拟机的用途和需求。虚拟化技术的灵活性使得我们可以为每个虚拟机提供独立的数据库环境,以满足不同的应用需求,同时也有必要对特定的虚拟机采取一些措施,确保它们的数据库环境完全一致。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/13385903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存