虛擬化Java應用程序:最佳實踐(JavaOne 2011)

賈斯汀·穆雷(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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373541.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373541.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373541.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux里hba狀態_Windows和Linux系統查看HBA卡wwn號的方法 | 系統之家官網

一、windows 系統在windows系統中,可以使用fc hba卡廠家提供的管理軟件查看光纖適配器的wwn號碼,具體如下:qlogic:sansurferemulex:hbanyware二、suse linux 9查看 /proc/scsi/qla2xxx/* ,并以 adapter-por…

”二柱子“個人項目

”二柱子“個人項目 關于二柱子的個人項目,據說……是這么發生的…… 二柱子因為懶(,,? ? ?,,),要給他上小學的兒子編寫個能夠出小學四則運算題目的程序。老師上課的時候又添加了條件: 1、打印至少30道題 2、除了整數之外,還要…

phpstorm9 增加對.vue的支持

1、安裝vue.js插件 2、設置javascript version為ECMAScript 6 3、 <script type"text/ecmascript-6"> </script>轉載于:https://www.cnblogs.com/lobtao/articles/6044378.html

Eclipse中的集成Git插件刪除線上遠程分支

Eclipse 的忠實黨,在使用Git 多人協作以分支的形式開發應用時分支合并到主干后往往再沒什么用(我的做法是保留一兩周再干掉),在此記錄使用Eclipse的Git 插件來刪除無用的分支。 操作步驟: 項目右鍵 — Team — Remote — Push — Next — Finesh 1,下拉框選擇你要刪除的遠程分支…

mysql 查詢系統_使用select和show命令查看mysql數據庫系統信息

(1).select顯示當前日期和時間mysql> select now();---------------------| now() |---------------------| 2019-06-05 13:46:20 |---------------------1 row in set (0.00 sec)顯示當前日期mysql> select curdate();------------| curdate() |------------| 2019-06-0…

從MongoDB GridFS流式傳輸文件

不久前&#xff0c;我在Twitter上發布了自己的最新作品&#xff0c;即從MongoDB GridFS傳輸文件進行下載&#xff08;而不是將整個文件存儲到內存中然后提供服務&#xff09;&#xff0c;這是我取得的一個小勝利。 我答應就此事寫博客&#xff0c;但不幸的是&#xff0c;我的特…

0. 洗好蝦和鍋 1. 放水放老姜&#xff0c;燒開&#xff0c;放鹽 2. 放入蝦&#xff0c;沸騰后&#xff0c;嘗咸淡 3. 放香蔥&#xff0c;乘起來轉載于:https://www.cnblogs.com/gary-tao/p/5248139.html

讀字庫遇到坑爹的問題

轉載請注明出處&#xff1a;http://blog.csdn.net/qq_26093511/article/details/53099262 最近在做一個led顯示屏的項目&#xff0c; 我想顯示 “常”&#xff0c;“州”&#xff0c;“大”&#xff0c;“學”這幾個字&#xff0c;但是只能顯示 “常” 和 “大”&#xff0c;…

如果–否則為編碼風格最佳實踐

下面的帖子將是一個高級花括號討論&#xff0c;沒有對與錯的答案&#xff0c;只是更多的“品味”。 它是關于是否將“ else”&#xff08;以及其他關鍵字&#xff0c;例如“ catch”&#xff0c;“ finally”&#xff09;放在換行符上。 有些人可能會寫 if (something) {doIt(…

MongoDB 去重(distinct)查詢后求總數(count)

在使用MonoDB 做報表匯總經常的有去重統計總數的需求,在此總結一下實現方式: 1, 直接使用distinct 語句查詢, 這種查詢會將所有查詢出來的數據返回給用戶, 然后對查詢出來的結果集求總數(耗內存,耗時一些) var len db.student.distinct("name",{"age" :…

adobe premiere pro cc2015.0已停止工作 解決辦法

adobe premiere pro cc2015.0已停止工作 一直報錯 解決辦法就是&#xff1a; 刪除【我的電腦】- 【我的文檔】下的 Adobe 下的Premiere Pro文件夾 現象就是怎么重新安裝都不管用Premiere 參考路徑 &#xff1a;C:\Users\xxx\Documents\Adobe\Premiere Pro 轉載于:https://…

java mysql 語句解析器_幾種基于Java的SQL解析工具的比較與調用

1、sqlparserhttp://www.sqlparser.com/優點&#xff1a;支持的數據庫最多&#xff0c;除了傳統數據庫外還支持hive和greenplum一類比較新的數據庫&#xff0c;調用比較方便&#xff0c;功能不錯缺點&#xff1a;收費&#xff0c;500$起2、Apache Calcite一個構建JDBC或者ODBC訪…

Css Sprites 多張圖片整合在一張圖片上

CSS Sprites原理&#xff1a; CSS Sprites其實就是把網頁中一些背景圖片整合到一張圖片文件中&#xff0c;再利用CSS的“background-image”&#xff0c;“background- repeat”&#xff0c;“background-position”的組合進行背景定位&#xff0c;background-position可以用數…

MongoDB 分析查詢性能

cursor.explain(“executionStats”)和 db.collection.explain(“executionStats”) 方法提供關于查詢性能的相關信息。這些信息可用于衡量查詢是否使用了索引以及如何使用索引。 db.collection.explain() 還提供有關其他操作的執行信息。例如 db.collection.update()。 有關詳…

無需復雜插件即可從Eclipse啟動和調試Tomcat

像Eclipse這樣的現代IDE提供了各種插件來簡化Web開發。 但是&#xff0c;我相信將Tomcat作為“常規” Java應用程序啟動仍然可以提供最佳的調試體驗。 大多數情況下&#xff0c;這是因為這些工具將Tomcat或任何其他servlet容器作為外部進程啟動&#xff0c;然后在其上附加一個遠…

flutter 國際化_Flutter 開發實戰資源推薦

開工第一天&#xff0c;來點輕松的資源推薦。這是一篇實戰類資源推薦&#xff0c;其實Flutter的入門資料官方已經做得很好了&#xff0c;如果你是零基礎&#xff0c;還是建議先啃一遍官方的教程&#xff0c;然后再看以下實戰資源&#xff0c;相信在你看官方課程中涉及到的一些疑…

2-5-666:放蘋果

描述把M個同樣的蘋果放在N個同樣的盤子里&#xff0c;允許有的盤子空著不放&#xff0c;問共有多少種不同的分法&#xff1f;&#xff08;用K表示&#xff09;5&#xff0c;1&#xff0c;1和1&#xff0c;5&#xff0c;1 是同一種分法。輸入第一行是測試數據的數目t&#xff08…

JSF和“立即”屬性–命令組件

JSF中的即時屬性通常被誤解。 如果您不相信我&#xff0c;請查看Stack Overflow 。 造成這種混亂的部分原因可能是輸入&#xff08;即<h&#xff1a;inputText />&#xff09;和命令&#xff08;即<h&#xff1a;commandButton />&#xff09;組件都立即可用&#…

通過joystick遙感和按鍵控制機器人--11

原創博客&#xff1a;轉載請表明出處&#xff1a;http://www.cnblogs.com/zxouxuewei/ 1.首先安裝joystick遙控器驅動&#xff1a; sudo apt-get install ros-indigo-joystick-drivers ros-indigo-turtlebot-teleop 2.運行tulterbot機器人&#xff1a; roslaunch rbx1_bringup …

php mysql 線程安全_PHP 線程安全與非線程安全版本的區別深入解析

從2000年10月20日發布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本&#xff0c;這是由于與Linux/Unix系統是采用多進程的工作方式不同的是Windows系統是采用多線程的工作方式。如果在IIS下以CGI方式運行PHP會非常慢&#xff0c;這是由于CGI模式是建立在多進程的基礎之…