簡體   English   中英

有沒有一種方法可以提高單體 websphere liberty 應用程序的性能?

[英]Is there a way to improve performance with a monolithic websphere liberty application?

有什么重要的方法可以提高 websphere liberty 應用程序的性能。

該應用程序是一個整體,大約有 40 個 web 應用程序和一只耳朵。 沒有 REST web 服務但是 servlet 和 jsp 代碼。

產品版本:19.0.0.3

大概有 30 萬行 Java 代碼。

加載請求可能需要 30-40 秒。

它正在運行 Java8。

機器是開發者機器,Mac Book Pro,Darwin Kernel Version 19.6.0。 16 演出的 ram。

以下是一些功能:

<featureManager>
    <feature>appSecurity-2.0</feature>
    <feature>jaxrs-2.0</feature>
    <feature>jsp-2.3</feature>
    <feature>localConnector-1.0</feature>
    <feature>jaxws-2.2</feature>
    <feature>ldapRegistry-3.0</feature>
</featureManager>

WebSphere Liberty本身應該是輕量級和快速的。 所以你可能應該尋找像這樣的區域

  1. 足夠的 memory 分配給服務器。
  2. 需要分析耗時 30-40 秒的用例,以了解處理的哪一部分耗時。 由於查詢性能不佳,它可能會花費大量時間在數據庫處理上。

您可以使用jvisualvm工具執行 cpu 和 memory 分析以了解熱點。 對於更豐富的性能相關數據,您還可以使用開源javamelody ,它可以很容易地與任何 EE 應用程序和 EE 服務器集成

除了提到的內容之外,我建議查看兩個有用的 Liberty 功能,它們可以幫助您找到應用程序中的減速:

  • 事件記錄- 允許您跟蹤通過 Liberty/應用程序組件的請求。

給你 output 類似於:

[12/15/14 18:24:29:528 IST] 0000002e EventLogging       I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeScenarioServlet
[12/15/14 18:24:29:531 IST] 0000002e EventLogging       I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeAppServlet
[12/15/14 18:24:29:532 IST] 0000002e EventLogging       I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /quote.jsp
[12/15/14 18:24:29:533 IST] 0000002e EventLogging       I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp
[12/15/14 18:24:29:534 IST] 0000002e EventLogging       I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=?
[12/15/14 18:24:29:547 IST] 0000002e EventLogging       I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=? # duration=12.537ms
[12/15/14 18:24:29:556 IST] 0000002e EventLogging       I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp # duration=22.171ms
  • 請求計時- 如果請求需要超過 10 秒才能完成,則將請求檢測為緩慢,如果請求未在 10 分鍾內完成,則檢測為掛起。

您可以查閱IBM WebSphere Application Server Performance Cookbook 一些技巧對於傳統的 WebSphere 和 Liberty 都是通用的,而另一些則是不同產品所獨有的。 有一個自由部分

與提到的其他答案一樣,您應該查看應用程序代碼/性能和服務器與外部資源的交互,以及性能說明書。

但是,您還運行在比最新版本落后 30 多個版本的版本上,甚至不符合安全修復的條件。 在這 30 個版本中,Liberty 繼續做出顯着的性能改進,因此我強烈建議您升級到最新版本。
此外,如果您還沒有這樣做,您應該嘗試將JDK 與 J9 JVM 結合使用,因為這在與 Liberty 一起使用時會提高性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM