写点什么

Azul 发布 Zing:面向 x86、基于软件的 JVM 虚拟化 / 弹性运行时

  • 2010-06-26
  • 本文字数:1744 字

    阅读完需:约 6 分钟

不久前 Azul Systems 宣布开源其 Managed Runtime Initiative 软件技术栈的关键部分,近日又发布了其第4 代产品Zing:面向Java 的虚拟化系统。Zing 只包括了Azul Systems 整个技术栈的软件部分,并且针对x86 平台进行了优化,可以实现Azul 基于Vega 的解决方案所具备的功能。它使用了 Managed Runtime Initiative 中已开源的一些组件。

Zing 通过虚拟化绕过操作系统的限制。这与 Managed Runtime Initiative 所采取的方式截然相反,后者旨在交付可以跨越整个系统栈(包括操作系统)的增强接口,这还需要几年的时间才能实现。Managed Runtime Initiative 在性能和可伸缩性方面无疑具备很多优势,但 Zing 现在就可以投入使用了,不必等待操作系统厂商的脚步。

Zing 平台包含如下 4 个主要的组件:

  1. Zing 虚拟机
  2. Zing 虚拟设备
  3. Zing Resource Controller
  4. Zing Vision

Azul 说该产品的工作方式就是虚拟化 JVM 本身,这与过去 5 年 Vega 平台所做的事情差不多。Azul 为各种操作系统都提供了 JDK,包括 Linux、zLinux、AIX、Solaris、HP-UX 和 Windows。Azul Systems 的技术副总裁兼 CTO Gil Tene 说到:

在执行我们提供的 JDK 时,实际上执行的是一个瘦虚拟化代理,它会将操作系统中实际的解决方案,实际的 Java 栈推送到更好的执行栈中。对于 Vega 来说,更好的执行栈就是我们定制的设备。对于 Zing 来说,该虚拟的执行栈作为一个虚拟设备运行在 x86 上。

虚拟执行栈(Zing 虚拟设备)可以运行在 RedHat 的 KVM 或是 VMWare 的 vSphere Hypervisor 产品之上。根据 Azul 所述,Zing 的运行时可以平滑伸缩到更大的范围,它只受虚拟设备周边的 hypervisor 所限。比如说,对于 VMWare 的 vSphere 来说,在本文写作之际,其技术上的限制是每个应用实例 8 个 x86 核心与 256GB 的内存(每个 JVM 也是这样的)。对于 KVM 来说,每个度量都是 vSphere 的两倍:16 个 x86 核心与 0.5TB 的内存。到今年 Zing GA 版发布之际,这两组数字都很有可能得到提升。

伴随着该产品的是两个管理组件:Zing Resource Controller 与 Zing Vision。前者是个系统管理工具,旨在从高层视角了解整个 Java 应用基础设施;后者则可以轻松查看到系统中运行着的 Java 应用的情况。这样,一旦产品出现了问题,Zing Vision 就可以及时获悉应用的真正问题而不会加剧问题。Vega 早在两年前就提供了该功能。最初是一个工具,用于收集运行系统的统计信息以指导 Azul 技术栈的未来开发工作。Tene 说到,Zing Vision 运行方式的关键在于它使用了 JRE 提供的统计信息。比如说,要想获悉如何才能恰当地优化代码,需要内联哪些代码、将要执行哪条分支,JIT 编译器需要收集很多信息,如运行程序所经历的时钟数和 hotspot。与之类似,垃圾收集器会在每个周期内遍历内存中的所有对象以获得类实例的数量、哪些类指向了其他类以及 GC 周期结束后所丢弃的各种信息。通过获取这些信息,Zing Vision 可以达到实时的分析性能而不会增加任何性能上的开销(如果采取了字节码插桩等技术就可以实现这个目标),这意味着它甚至可以用在产品系统中。

由于硬件厂商不断追赶着 Azul 的脚步,因此 Zing 的发布为 Azul Systems 开辟了一个新方向:从硬件转向软件。Tene 说,他怀疑 5 年后 Azul 将不再销售专有硬件了。

这么说有些突然,但我们一直认为自己为 Java 运行时栈构建了一个解决方案,无论需要什么我们都会做下去的。在前 3 代产品中,我们使用芯片完成这些任务。每当我们看到这些芯片时都不禁要问“还有其他东西能增强我们的解决方案么”?对于前 3 代产品来说,答案是“没有,我们没法购买零部件、没有系统可供使用,一切都需要白手起家”。在使用 Zing 设计第 4 代产品时,我们从 Intel 和 AMD 看到了希望,我们欣喜地看到借助于 AMD 的 Nehalem-EX 和 Magny-Cours,我们能够使用现成的服务器运行任务。

Tene 说,现在,Nehalem-EX 系统(比如 8 核的 Xeon X7560)可以实现 Azul 基于 Vega 系统的两配置选项,这占据 Azul 销售系统数量的 60%-70% 左右。他说,到 2011 年底,x86 系统将拥有 Vega 现在的能力。这样,Azul 将不会再开发 Vega 4 芯片了,但我们还是期望能在未来的 2 到 3 年内销售大量的基于 Vega 的系统。

查看英文原文: Azul Systems’ Fourth Generation Product, Zing, is a Pure Software Solution

2010-06-26 06:301526
用户头像

发布了 88 篇内容, 共 270.5 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

MySQL 千万数据量深分页优化

Java 程序员 后端

MYSQL-连接查询算法:JOIN语句在-MYSQL-内部到底是怎么执行的

Java 程序员 后端

mysql常用函数,mysql进阶

Java 程序员 后端

MyBatis官方文档-XML 配置

Java 程序员 后端

MyCat:第四章:Mycat中的概念(1)

Java 程序员 后端

mysql分表spring拦截器进行日志采集

Java 程序员 后端

MySQL原理 - InnoDB引擎 - 行记录存储 - Off-page 列

Java 程序员 后端

MyBatis逆向工程Generator和IDE Plugin

Java 程序员 后端

MySQL 5

Java 程序员 后端

MySQL 千万数据量深分页优化(1)

Java 程序员 后端

mysql-排它锁之行锁、间隙锁、后码锁

Java 程序员 后端

MyCat:第四章:Mycat中的概念

Java 程序员 后端

MySQL最全整理,1200页文档笔记,从高级到实战讲的太清楚了

Java 程序员 后端

MySQL没有RowNum,那我该怎么按“行”查询或删除数据?(1)

Java 程序员 后端

MyBatis初级实战之二:增删改查

Java 程序员 后端

mybatis常用注解(绝对经典)

Java 程序员 后端

Mybatis开发要点-resultType和resultMap的区别?

Java 程序员 后端

MyCat1

Java 程序员 后端

MySQL入门篇

Java 程序员 后端

MySQL基础学习手册

Java 程序员 后端

MySQL基础总结

Java 程序员 后端

MyBatis的Mapper接口以及Example的实例函数及详解

Java 程序员 后端

MyCat教程【安装及配置介绍】

Java 程序员 后端

MYSQL 分组排名

Java 程序员 后端

MySQL 数据库开发入门(四):MySQL 的数据引擎

Java 程序员 后端

mybatis映射器组件

Java 程序员 后端

MyBatis详解(二):mybatis开发dao

Java 程序员 后端

MySQL 事务隔离级别

Java 程序员 后端

MySql数据引擎简介与选择方法

Java 程序员 后端

Mybatis如何执行Select语句,你真的知道吗?

Java 程序员 后端

MyBatis常用标签和注解(绝对经典)

Java 程序员 后端

Azul发布Zing:面向x86、基于软件的JVM虚拟化/弹性运行时_Java_Charles Humble_InfoQ精选文章