2015-10-12 45 views
2

我目前有一組21個模塊的OSB項目,花費大約4分鐘的時間在我的本地2核/ 12GB RAM筆記本電腦上運行Windows,無需使用線程,只是一個簡單的構建安裝。每個模塊需要10-20秒。Oracle Service Bus的Maven編譯時間比Linux上慢30倍Linux上的編譯時間爲

在運行在Ubuntu上的CI服務器上構建完全相同的項目時,使用8個內核/ 16GB RAM,構建時間接近110分鐘,每個模塊使用大約4分鐘。

在Linux構建的一些細節:

  • 大部分每個模塊這4分鐘都花在坐在0%CPU利用率閒置。
  • MAVEN_OPTS是「-Xmx512m -Xms512m」
  • 相同的生成時間上的Java 7和8
  • 當它把大部分的是在時間-X標誌運行「 - 高端配置 - 」

我曾嘗試增加文件描述符限制,認爲這是問題。這對構建時間沒有任何幫助。

+0

你如何建立你的OSB項目?離線OEPE或com.bea.alsb.tools.configjar.ConfigJar? –

+0

@TrentBartlem我爲maven使用oracle-service-bus插件。 POM指向中間件SOA套件的本地安裝。 – karl

回答

3

在Windows和Linux上分析使用VisualVM的maven之後,我發現在Linux上它花費了異常的時間來生成隨機種子。所以

enter image description here

通過改變(在略低不太安全)/dev/./urandom建造時間由110分鐘過去了下降到1分鐘47秒。

如何做到這一點的一個例子是在設置傳遞作爲一個標誌:

-Djava.security.egd=file:/dev/./urandom

如果你想永久設置此,可以在文件jdk1.7.0_75/jre/lib/security/java.security通過改變做:

securerandom.source=file:/dev/urandom
​​。

這可能會帶來一些安全隱患,如果您需要這樣做,您應該先做一些研究。

3

這裏有很多變數。我無法提供答案,但總的來說,我試圖儘可能減少問題的嚴重程度。你說的是〜21個項目。 1和1一樣慢嗎?我知道你說你用4分鐘/模塊獲得它,但這不同於其中有1個模塊的項目。文件描述符(ulimit)的純粹範圍可能非常麻煩,即使您在構建期間一次只查看一個模塊。

其次,確保你自己的筆記本電腦的環境變量是相似的。的Windows到Linux是不完全的最簡單的比較,但你應該能夠確定JAVA_OPTSMAVEN_OPTS,各種-X/-D標誌都是一樣的,無論是-Xms/-Xmx設置相同,等等,等等

進一步,您是否查看了我找到的任何Google搜索結果?

您的問題困難的部分是我們不看甚至遠程接近環境。我們不知道

  1. 環境變量
  2. settings.xml(和/etc/.../.settings.xml
  3. 是CI服務器軟件運行的版本或者你只是運行在本地計算機和遠程都在同一個mvn clean install
  4. 等等,等等

我不能說,這個網站甚至將有專人解決的最佳場所。如果你正在建立一個OSB項目集,你可能會有更好的運氣提交Oracle Support的SR,並要求他們幫助你,根據你的支持計劃。至少在SR中,通信中有更多的來回。在這裏,你需要提供所有可能的信息,然後人們向你吐出答案。如果沒有關於你的問題的任何數據,我們無處可去,還有瘋狂的假設/猜測。

+0

感謝您的回答。是的,只有一個模塊運行時,每個模塊的速度都很慢。我仔細比較了所有環境變量和Maven配置,並且它們都與我在平臺之間獲得的相似。在測試過程中,我正在通過SSH連接到CI框,並手動運行「mvn clean install」,這一點也相似。我已經搜索了任何我能想到的東西,但目前還沒有運氣。但我認爲你是對的,StackOverflow不是這個問題的正確平臺,我會聯繫Oracle。謝謝你的時間。 – karl

+2

不客氣。有一件事要補充,如果你找到答案,隨時提供它作爲你自己的問題的答案。更少的東西,你讓我們都掛在邊緣;; –

+1

我找到了解決方案,並認爲你可能對我剛剛發佈的答案感興趣。 :) – karl