设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

多租户JVM技术前瞻

2013-10-15 11:53| 发布者: joejoe0332| 查看: 1918| 评论: 0|原作者: 崔康|来自: InfoQ

摘要:   IBM多租户JVM(Multitenant JVM)目前随着IBM JAVA 8 beta版已经发布。通过在一个多租户JVM上运行多个应用程序,云系统可以加速应用系统的启动时间、减少应用系统内存消耗。主要开发者Graeme Johnson和Michael D ...


  当然,鱼和熊掌不可兼得。多租户JVM的缺点包括:


  • 相比于多个应用运行在单个隔离的JVM这种传统方式,多租户JVM的主要弊端来自于隔离性的降低。例如,多租户JVM中一个原生崩溃(native crash)可以影响到所有租户。
  • 为了执行JVM工作我们必须要执行多租户扩展(multitenancy extensions),这会对性能带来不好的影响。然后,这影响会随着租户数量的增加而下降——因为通过在同一个系统运行多个JVM我们可以避免处理器和内存的浪费。


  接着,文章简单介绍了如何启动多租户JVM。


  为了和其它租户共享运行时间,应用程序使用者需要在启动应用程序时在启动应用程序时加入一个单变量,例如:java -Xmt -jar one.jar


  这样操作的结果会使应用程序好像运行在其专用的JVM一样。但实际上它和其它应用程序运行在同一个JVM中。多租户JVM扩展使以这种方式启动应用 成为可能,并且它还为共享JVM的多租户提供隔离性。当一个租户启动后,JVM启动器会选择定位在现有的共享JVM后台程序(javad)或者在必要的时 候启动,当第二个租户启动时,这个租户会找到现有的共享JVM后台程序并且用这个JVM进行运行,这样做的结果是这两个租户共同的引导程序会出现在 javad过程。这种布置使租户可以共享大部分运行时的结构。我们只需要对命令行进行有限的修改,就可以实现通过多租户共享JVM运行现有的应用程序,这 一方法很简单。


  多租户JVM目前还有一些限制,主要包括:


  • JNI natives——多租户共享JVM并没有给JNI native提供隔离性。因此,含有用户添加的JNI native的应用程序在多用户共享JVM中运行并不一定稳定。这些应用程序可能会影响整个JVM的运行并获取其他租户的信息。考虑到原生代码需要足够的 “信任”(例如众所周知的中间件),这个风险可能是可以接受的。此外,操作系统只允许共享JVM进程下载一份共享库的副本,而且这个副本是原生代码的所在 地。这就导致当多个租户共享同一个库时,他们不能载入相同的原生代码。
  • JVMTI(Java虚拟机工具接口):因为调试和分析功能会影响到所有共享JVM服务器的租户,所有多租户JDK目前还不支持这些功能。这也是我们将来工作中要解决的问题。
  • GUI项目:诸如SWT的库在原生层层是全局声明的,所有多租户JDK目前还不支持这些库。

酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部