javaone_虚拟化Java应用程序:最佳实践(JavaOne 2011)

javaone

贾斯汀·穆雷(Justin Murray)早五分钟就开始了他的演讲[“虚拟化Java应用程序:最佳实践”(21860)],并说虚拟化已经到了人们不再需要担心利用虚拟化的地步。 他说他的演讲大约有一年的历史了,是一个团队的工作。

相对较小的房间(Nikko Carmel I / II)挤满了人,似乎只靠近站立的房间(坐席帮助每个人就座)。 早上的策略性主题演讲稍有结束,人们在试图离开时陷入了宴会厅,而本次演讲的提早开始导致很多人迟到,这有些分散注意力。 我不怪演讲者提早开始,因为他有很多很好的信息要讲。 最大的问题是后勤延迟迫使人们离开已经超过计划的结束时间的主题演讲。

Muray具有七个虚拟化最佳实践,只有前两个(虚拟机内存和虚拟CPU /物理CPU /线程)是Java特有的。 大多数人在存储区域而不是处理/ CPU区域犯了虚拟化错误。 Murray指出,Java开发人员无需执行任何操作即可使用虚拟化。 他们不需要更改任何代码,也不需要更改任何设置。

  1. 虚拟机内存
  2. 中央处理器
  3. 磁盘I / O
  4. 网络I / O
  5. 计时表
  6. 微观基准
  7. 监控与管理

一个易于理解的虚拟化Java应用程序的初始最佳实践是:“ Java堆需要始终保持在物理内存中。” 他还建议使用大内存页。 不要将那么多虚拟机塞入物理内存,以免每个VM的总最大堆空间使用的内存多于物理内存中的可用内存。

默里的第一个正式最佳实践是“ 1。 虚拟机内存:调整虚拟机的内存大小以留出足够的空间。” 他指出,有一个公式可以计算要使用的内存量,以考虑该内存的许多需求。 他说,此公式已记录在白皮书和同事的书中。 Murray说,虽然对于一个小型应用程序可能有太多的JVM内存,但他通常倾向于为JVM分配大量的内存以用于虚拟化。 Murray还建议使用VMware Distributed Resource Scheduler(DRS) 。 他的另一个广告宣传是针对Java的vFabric弹性内存(EM4J),它与VMware的称为“ tc服务器 ”的“ Tomcat之味”一起提供。 Murray表示,尽管在大多数情况下都担心Java中内存的过度使用,但在使用tc服务器和EM4J时却不需要。 Murray还使用了esxtop 。

在解决了内存问题之后,Murray转向了覆盖CPU。 他从对线程和虚拟CPU的观察开始本节。 他的幻灯片中写道:“ Java线程可随时在一个vCPU上执行”,而“ vCPU则可随时在一个物理CPU上调度。” Murray补充说,他与之合作的大多数客户正在使用四个虚拟CPU,但是现在最多支持32个虚拟CPU。线程通常在监视器或套接字上等待释放,并且Murray认为大多数Java应用程序并未完全使用theads。 通常,Murray倾向于使用“对于您的应用程序而言最少的虚拟CPU”。 Murray表示,使用命令行选项-Xgcthreads等同于说:“我比JVM更了解。”

Murray表示,虚拟化不再害怕I / O。 他说,从Java虚拟化的角度来看,网络I / O比磁盘I / O更重要。 Murray指出,交换对物理机上的VM不利,对于虚拟机上的VM同样不利。

Murray提供的一个更好的建议应该被更普遍地理解(但似乎不是),它只是对自己的应用程序进行基准测试,并且仅基于特定应用程序的基准测试来做出决策。 他补充说,使用应用程序的“代表性子集”还不够好。

为了进行监视和管理,Murray建议从每台计算机开始一个JVM进程,然后逐步扩展到虚拟机中所需的JVM数量,一次确定一个上限。 他在幻灯片上的最后一个项目符号建议使用vCenter或esxtop来查看Java应用程序的哪些部分正在消耗资源。

Murray的“简短故事”是,对于虚拟化而言,Java开发人员通常不需要调整JVM垃圾回收策略,线程池大小或JDBC连接池大小,而对于物理服务器则不需要进行任何调整。 唯一应使用的命令行选项是用于指定大页面。

Murray讨论了使用Capacity Planner进行大约30天的收集,以了解哪些候选人是虚拟化的良好候选人。 Murray指出,您不能凭空创建硬件,因此在这种情况下,虚拟化将无法​​帮助大量使用硬件。

Murray最后总结道:“ Java中间件和应用程序应该虚拟化。”

Murray在VMware工作,VMware 在VMware最佳实践指南上提供了企业Java应用程序 。 Murray在演讲中引用了VMware的技术白皮书 。

参考: JavaOne 2011:虚拟化Java应用程序: JCG合作伙伴的 最佳实践   实际事件启发博客上的达斯汀·马克思。


翻译自: https://www.javacodegeeks.com/2012/02/virtualizing-your-java-applications.html

javaone

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue计算属性computed与监听属性watch的基本使用

目录 Vue.js 计算属性 Vue.js 监听属性 Vue.js 计算属性 计算属性关键词: computed。 计算属性在处理一些复杂逻辑时是很有用的。 反转字符串的示例 <!DOCTYPE html> <html> <he

连接(交叉连接、内连接、外连接、自连接)

本文非原创 可分为&#xff1a;交叉连接、内连接、外连接、自连接 1.使用交叉连接&#xff1a; 它是非限制连接&#xff0c;就是将两个表格不加任何条件的组合在一起&#xff0c; 即第一个表格的所有记录分别和第二个表格的每一条记录相连接 组合成新的记录&#xff0c;连接后结…

vue样式绑定与事件处理器的基本使用

目录 Vue.js 样式绑定 Vue.js 事件处理器 事件修饰符 Vue.js 样式绑定

Finally 与 return

网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行&#xff1f;很多人都说不是&#xff0c;当然他们的回答是正确的&#xff0c;经过我试验&#xff0c;至少有两种情况下finally语句是不会被执行的&#xff1a; &#xff08;1&…

vue表单的基本使用

Vue.js 表单 介绍 一下Vue.js 表单上的应用。你可以用 v-model 指令在表单控件元素上创建双向数据绑定。 v-model 会根据控件类型自动选取正确的方法来更新元素。 input 和 textarea 元素中使用 v-model 实现双向数据绑定: <!DOCTYPE html> <html> <head…

fold函数_Java中使用Map and Fold进行函数式编程

fold函数在函数式编程中&#xff0c;Map和Fold是两个非常有用的运算符&#xff0c;它们属于每种函数式语言。 如果Map和Fold运算符是如此强大且必不可少&#xff0c;那么您如何解释说即使Java编程语言缺少这两个运算符&#xff0c;我们也可以使用Java来完成工作&#xff1f; 事…

NVIC优先级分组

挂起&#xff0c;解挂&#xff0c;使能&#xff0c;失能 转载于:https://www.cnblogs.com/alantechnique/p/5598374.html

Vue组件及自定义事件

目录 Vue.js 组件 动态 Prop Prop 验证 Vue.js 组件 - 自定义事件 data 必须是一个函数

高级Lucene查询示例

本文是我们名为“ Apache Lucene基础知识 ”的学院课程的一部分。 在本课程中&#xff0c;您将了解Lucene。 您将了解为什么这样的库很重要&#xff0c;然后了解Lucene中搜索的工作方式。 此外&#xff0c;您将学习如何将Lucene Search集成到您自己的应用程序中&#xff0c;以…

Vue 路由的基本使用

目录 Vue.js 路由 安装 直接下载 / CDN NPM to replace append tag

【Egret】Wing3发布移动APP功能,打包APK流程以及会遇到的问题

流程&#xff1a;1.安装好wing 3&#xff0c;然后 插件——Egret项目工具——发布移动APP——Build android native project 2.配置发布环境&#xff1a; Android 1.egret engine 点击下载2.android sdk mac版下载 windows版下载3.java sdk mac版下载 windows版…

Vue过渡 动画混入

目录 过渡 自定义过渡的类名 同时使用过渡和动画 显性的过渡持续时间

有效运维的 on-call 机制

[编者按]本文作者为云告警平台OneAlert负责人&#xff0c;著《云计算与OpenStack》&#xff0c;在IT运营管理、云计算方面从业10多年。 正文 互联网技术的发展&#xff0c;离不开运维支撑工作&#xff0c;没有零bug的程序&#xff0c;没有不出问题的系统&#xff0c;问题故障不…

vue中Ajax(axios)及Ajax(vue-resource)的使用方法

目录 Vue.js Ajax(axios) GET 方法 请求方法的别名 并发 请求配置项 响应结

javafx11 最佳实践_JavaFX移动应用程序最佳实践,第2部分

javafx11 最佳实践警告&#xff1a;我在这里给出的提示适用于JavaFX Mobile的当前版本&#xff0c;该版本是JavaFX 1.1 SDK的一部分。 在将来的版本中&#xff0c;行为将发生变化&#xff0c;上述工件的当前不良性能将被优化或至少得到显着改善。 我在这里写的所有内容都是快照…

团队项目:界面设计

游戏内关卡为2D横版界面&#xff0c;背景为楼群贴图&#xff0c;整体色调以灰色为主&#xff0c;与摩托车手的主题相配。游戏中配有音效及背景音乐&#xff0c;背景音乐为我组成员自行创作录制完成。界面展示如下&#xff1a; 图1 游戏中设计图 图中显示的摩托车手即为玩家操控…

vues响应接口and实例

目录 Vue.js 响应接口 Vue.set Vue.delete Vue.js 实例 导航菜单实例 编辑文本实例

Hystrix简介

在过去的几天里&#xff0c;我一直在探索Netflix Hystrix库&#xff0c;并欣赏了这个出色的库所提供的功能。 引用Hystrix网站上的内容&#xff1a; Hystrix是一个延迟和容错库&#xff0c;旨在隔离对远程系统&#xff0c;服务和第三方库的访问点&#xff0c;停止级联故障&am…

MP3音乐播放器搜索引擎-鼠标拖动窗口

定义鼠标的按压&#xff0c;移动&#xff0c;施放事件 &#xff08;1&#xff09;鼠标的按压事件 globalpos是全局坐标&#xff0c;即鼠标相对于桌面屏幕左上角的坐标我们通过this->frameGeometry().topLeft();可以获得当前窗口的左上角的x左边或y坐标 在移动事件中我们可以…

SpringMVC学习--文件上传

简介文件上传是web开发中常见的需求之一&#xff0c;springMVC将文件上传进行了集成&#xff0c;可以方便快捷的进行开发。 springmvc中对多部件类型解析在 页面form中提交enctype"multipart/form-data"的数据时&#xff0c;需要springmvc对multipart类型的数据进行解…