SpringOne 2GX 2012回放:虛擬化和調優大型Java應用程式,從Spring和Java到Spring和Akka

新聞 | Pieter Humphrey | 2013年4月9日 | ...

虛擬化和調優大型Java應用程式

本次會議分享了許多在vSphere上執行Java的生產經驗證的方法。涵蓋了如何為大型部署配置JVM和VM的大小。本次會議將有一個關於GC調優的專門部分,並展示如何使用過去15年來實際現場經驗開發的GC配方來調優各種JVM。

本次會議討論了三個關鍵趨勢和相關的調優技術。關鍵趨勢是:整合、彈性和靈活性,以及效能。

整合 我們的許多客戶發現,他們的中介軟體部署已經氾濫,併成為一項與成本較高相關的管理挑戰。我們看到一種跨客戶的趨勢,他們希望透過虛擬化來減少伺服器例項的數量。同時,客戶正在抓住整合的機會,以合理化處理特定負載所需的中介軟體元件數量。中介軟體元件最常在 Java 虛擬機器 (JVM) 中執行,觀察到的規模為 100 到數千個 JVM 例項,這為 JVM 例項整合提供了許多機會。因此,中介軟體虛擬化提供了兩次整合的機會——一次是整合伺服器例項,第二次是整合 JVM 例項。這一趨勢影響深遠,因為地球上每個 IT 部門都在考慮整合的成本節約。一家酒店業的客戶在整合其伺服器佔地面積的過程中,同時整合了許多小於 1GB 堆的較小 JVM。他們將這些許多較小的 1GB JVM 整合成了兩個類別:4GB 的和 6GB 的。他們以淨總應用程式可用 RAM 量等於原始 RAM 量的方式進行了整合,但 JVM 例項數量卻減少了。他們之所以能做到這一切,是因為提高了效能並維持了良好的 SLA。由於需要管理的 JVM 例項數量減少,管理成本也大大降低,並且一個經過最佳化的環境有助於輕鬆實現 SLA。
另一位來自保險業的客戶,能夠取得與上述客戶相同的成果,此外,他們還能夠在開發和QA環境中過度分配CPU,以節省第三方軟體許可成本。另一方面,有時我們會遇到客戶有合法的業務需求,需要為每個應用程式維護一個JVM,或為每個業務線維護一個JVM。在這種情況下,您實際上無法整合JVM例項,因為這會導致一個業務線應用程式的生命週期與另一個業務線應用程式的生命週期混合。然而,雖然這類客戶從JVM整合中消除了額外JVM例項方面獲益不多,但他們確實從更充分地利用伺服器硬體上的可用計算資源中獲益,而這些資源在非虛擬化環境中可能會被閒置。

彈性與靈活性 應用程式具有季節性需求的情況越來越普遍。例如,我們的許多客戶會執行各種營銷活動,這些活動會驅動季節性流量到他們的應用程式。使用 VMware,您可以處理這種流量高峰,在需要時自動配置新的虛擬機器和中介軟體元件,然後在負載減弱時自動拆除這些虛擬機器。此外,在不造成停機的情況下更新/修補硬體的能力對於支援雲時代規模和正常執行時間至關重要的中介軟體來說是至關重要的。VMware VMotion 使您能夠在不停止應用程式或 VM 的情況下移動 VM。僅僅是這種靈活性,就使得在管理大規模中介軟體部署時,中介軟體的虛擬化變得物有所值。一家金融領域的客戶,每天處理數百萬筆交易,頻繁使用 VMotion 來安排硬體升級,而無需任何停機時間。否則,這將是一次對他們業務昂貴的計劃性停機。

效能。客戶在虛擬化時通常報告中介軟體平臺效能有所提升。效能改進部分歸因於客戶在虛擬化專案期間通常會更新的硬體。由於強大的VMware Hypervisor,效能也有所提高。一位最近的客戶報告了出色的效能水平,並提供了以下證詞。

“透過我們的OrderExpress專案,我們升級了中介軟體服務、商務、門戶、WCM、服務層、DB2資料庫;從AIX遷移到Linux;在VMware上虛擬化;將應用程式遷移到三層DMZ;交易量增加了150%以上;並增加了顯著的新功能,極大地改善了客戶體驗。一次性改變如此廣泛的技術元件是一個巨大的挑戰。然而,使用VMware vSphere和其他架構變更,我們成功地將效能提高了300%以上;節省了數百萬美元的成本;提高了安全性、可用性和可擴充套件性;我們還計劃繼續發展該應用程式,以保持每年30%以上的增長。”

– Jeff Battisti,Cardinal Health高階企業架構師

在本次會議中,我將展示一些小型和大型JVM中介軟體元件的實際JVM和VM大小。還將詳細介紹我多年來開發的GC調優配方,該配方已被證明可以處理4GB到88GB+的JVM堆大小,甚至更高。當然,記憶體資料庫的引入促成了擁有這些大型JVM的趨勢,因此我們將討論調優JVM、VM以及它們部署的硬體平臺的最佳方法。

我認為大小問題是我們客戶群體中最常問的問題,因此我計劃在會議中重點關注它。



關於演講者

Emad Benjamin

Emad Benjamin

Emad Benjamin在IT行業工作了二十年。他畢業於伍倫貢大學,獲得電氣工程學士學位。在他職業生涯早期,他是一名C++軟體工程師,1997年,他轉向使用Java程式設計,並一直專注於Java。在過去的七年裡,他一直專注於VMware vSphere、vFabric GemFire和SQLFire上的Java。Emad自2005年以來一直在VMware工作,是《VMware企業Java應用程式架構》一書的作者。Emad曾先後在VMworld、SpringOne和Open World上就Java虛擬化主題發表演講。

關於Emad的更多資訊»



 

從Spring + Java到Spring + Akka - 探索之旅

基於Actor的併發模型是一種正規化轉變。什麼是正規化轉變?

科學主流理論中基本假設或正規化的改變。正規化轉變使簡單的想法難以理解。儘管Actor模型是一個簡單而革命性的想法,但程式設計師很難看到它的實際好處和用法。同樣,Scala程式語言帶來了許多簡化基於Actor的設計的功能,但它也帶來了一種新的編碼風格。解決這個問題的一個可能方法是根據舊正規化來評估新正規化。在本次演示中,我們將採用一個正在執行的Spring Web應用程式,並逐步使用Actor和Scala來實現它。我們將保持懷疑和警惕的態度對待新想法,但同時也會保持開放的心態。我們將利用Spring的知識來學習基於Actor的併發模型。同時,我們將學習Actor、Scala背後的最佳實踐,以及將它們與Spring Framework結合使用的最佳實踐。



關於演講者

Nilanjan Raychaudhuri

Nilanjan Raychaudhuri

Nilanjan是Typesafe的顧問和培訓師。他於2000年開始他的職業生涯,作為一名軟體開發人員,使用面向物件程式語言。Nilanjan曾先後在IBM、ThoughtWorks和LivingSocial工作,在那裡他積累了豐富的Java/JEE、Ruby、Groovy和Scala軟體解決方案的管理和開發經驗。自從接觸到Scala這門優美的語言以來,他一直對Scala程式設計充滿熱情。目前,他業餘時間致力於scala-webmachine開源專案(RESTful資源框架)。過去,Nilanjan曾參與其他開源專案和庫。在Typesafe,他主要負責教授和設計Scala和Play課程,並幫助客戶採納這些技術。Nilanjan喜歡透過在各種會議上發表演講來分享他的經驗。他也是《Scala in Action》一書的作者。

關於Nilanjan的更多資訊»

Josh Suereth

Josh Suereth 是 Typesafe 的高階軟體工程師,也是《Scala In Depth》一書的作者。他自 2007 年接觸到這門優美的語言以來,一直是一位 Scala 的狂熱愛好者。他於 2004 年開始了他的軟體開發職業生涯,磨練了他的 C++、STL 和 Boost 技能。大約在同一時間,Java 熱潮蔓延,他的興趣轉向了 Web 託管的分散式 Java 解決方案,以幫助衛生部門發現疾病爆發——從 EJB 到 Hibernate/Spring,甚至是一些 Applets。他於 2007 年首次將 Scala 引入了他的公司程式碼庫,並很快被 Scala 熱潮所感染,為 Scala IDE、maven-Scala-plugin 和 Scala 本身做出了貢獻。2009 年,他開始撰寫《Scala In Depth》一書,該書為日常應用程式中使用 Scala 提供了實際支援。如今,Josh 是多個開源 Scala 專案的作者,包括 Scala 自動資源管理庫、PGP sbt 外掛,以及為 maven-Scala-plugin 等 Scala 生態系統的關鍵元件做出貢獻。他目前在 Typesafe Inc. 的工作涉及從構建 MSI 到剖析效能問題等各種工作。Josh 透過文章和演講定期分享他的專業知識。

關於Josh的更多資訊»





獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有