2014-12-03 44 views
1

我需要提高運行在6MB RAM的虛擬機上的Liferay 6.2門戶的性能。增加3GB以上的Xmx和Xms不會有幫助。Liferay性能 - 如何運行多個jvms

所以,我偶然發現了這個在這裏從Liferay User-Guide段:

需要注意的是有記憶收益遞減,尤其是 與64個系統的法律。這些系統允許您創建非常大的JVM,但JVM越大,垃圾收集所花費的時間就越多。因此,您可能不希望 創建大於2 GB的JVM。 要利用單個系統上較高的內存數量 ,請運行Liferay的多個JVM,而不是

現在,我將如何運行Liferay的多個JVM?我的意思是我可以很容易地在不同的端口上運行兩個tomcat(比如8080和8082),但我想這兩個實例必須以某種方式鏈接?

場景:

  • Liferay的6.2 EE
  • 的Tomcat 7
  • 併發用戶的非常有限量的(5最大)
  • 一個站點,與一個頁面和一個自定義portlet(+ LR登錄portlet)
  • 數據量非常有限(我的portlet表的最後一次轉儲爲30MB)
  • 沒有分機,沒有掛鉤。簡單的JSF portlet除了crud操作外什麼也不做。
  • 的Oracle 11g數據庫(在同一臺機器上運行的現在)

(我知道這是不是一個門戶的場景,但客戶想它,是意見,而耐)

加載該頁面在用戶登錄前需要長達45秒的時間。我無法給出vm(運行CentOS的Hyper-V)的規格,但它不會令人驚訝(讀取預算不足)。

謝謝〜FABI

+0

我想我找到了一些有希望的東西(筆):http://www.liferay.com/de/community/wiki/-/wiki/Main/High+Availability+Guide – FeinesFabi 2014-12-03 15:14:38

+0

主要問題是,這只是有用的當我們想要提高併發用戶的性能時。 – FeinesFabi 2014-12-03 17:14:01

+0

爲什麼你認爲記憶是導致你的門戶緩慢的原因?你是否監測GC活動? 6Gb堆是否被完全使用? – 2014-12-03 21:31:35

回答

1

我需要重新安排我的語句 - 對不起,如果這打亂了故事的流動。

首先,在具有單頁和5個用戶的系統上,設置羣集時不會獲得任何收益。在45秒的應答時間內,您在另一個地方遇到嚴重問題,而不是您目前的想法。從你提供的信息來看,只能猜測 - 但即使這樣也不是一個好猜測 - 這些問題出在哪裏。他們當然不需要第二個例子。我會在更正的文檔中獲得過於具體的聲明。

這將結束對原始問題的答案,即潛在的和假設的問題。如果你 - 或其他人 - 真的未來需要一個集羣,並且想要設置它,我將把剩下的答案留在這裏。它不適用於你的情況。


如果2G max的一攬子聲明適用於您,您必須親自測量。有一些內存綁定的門戶,一些是CPU綁定,一些是I/O或數據庫綁定。你將不得不自己檢查什麼限制了你的特定應用程序的性能。您可能需要檢查Liferay的性能白皮書(可在客戶門戶上獲得,因爲您似乎是EE用戶),並確定應用程序的性質以及您可以期望的性能。

如果您的門戶網站受CPU限制,同一虛擬機上的兩個門戶網站將不會幫助在所有。你應該看看實際的瓶頸並解決這個問題。 45秒的應答時間 - 除非在非常高的負載下 - 指向一個我無法想象用羣集解決的問題。

用於建立集羣的文件,你可能要檢查的User's Guide或提供材料的說明在新的測試版文檔站點https://dev.liferay.com

此外,在幾天之內(我在中間後期製作)我將在應用程序性能監視上發佈一個Radio Liferay插曲,並且在將來可能會有關於此主題(計劃中)的一系列劇集 - 它目前排在隊列中的第3位 - 可能是第44集。

此外,聚類是(幾乎整天)在System Administration Training主題。最後,正如你提到的EE,有一個clustering plugin for EE,優化正在進行的集羣通信。但請注意,您可能需要兩個EE訂閱才能在集羣中運行兩個實例。我在這裏提到完整性,不是因爲我認爲這個插件會對你的情況有所幫助。

在我寫完所有這些之後,我發現你在Liferay的同一臺機器上運行Oracle,如果你堅持使用6G RAM,在同一臺機器上配置Liferay的另一個實例肯定不會有幫助。事實上,性能不佳的原因可能是虛擬內存的利用率:只要你的服務器將內存分頁到磁盤,你就會敬酒。請注意,VM guest虛擬機或甚至VM主機可能都是進行分頁的人員。如果兩者都在同時交換內存,那麼你就是一大堆吐司。