2017-02-16 35 views
1

我們試圖在Cpanel服務器中部署多個tomcat應用程序,並且我們經常遇到內存問題。當我們運行一個單獨的tomcat應用程序時,它可以正常工作,沒有任何問題,但是當運行兩個應用程序時,這會導致%CPU增加到250以上,並且這兩個應用程序都會停滯。任何人都可以請幫助我們嗎?請參閱下面日誌中顯示的錯誤。在Cpanel服務器中部署多個Tomcat應用程序時發生內存泄露問題

org.apache.catalina.core.ApplicationDispatcher invoke 
SEVERE: Servlet.service() for servlet jsp threw exception 
java.lang.OutOfMemoryError: PermGen space 

Exception in thread "http-bio-80-exec-1206" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "http-bio-80-exec-1195" java.lang.OutOfMemoryError: PermGen space 
+0

你可以嘗試增加JVM – lpgad

+0

喜的內存容量, 我們加入「/usr/local/easy/bin/setenv.sh」,其中的內存已經增加了添加以下碼。 export JAVA_OPTS =「 - Xms2048m -Xmx2048m -XX:PermSize = 2048m -XX:MaxPermSize = 4096m」 –

+0

如果你的tomcat是新的。請檢查你的jsp和程序是否存在死循環和深遞歸 – lpgad

回答

0

您需要調整和優化適當的資源使用和正在運行和運行內存的Java應用程序服務器。

你有什麼服務器配置?它是VPS還是專用服務器?

或者您使用的是共享主機?

+0

服務器是僅部署了tomcat應用程序的專用服務器。內存是16 GB RAM。 –

0
  • 您是否在生產環境?
  • 異常是在部署階段或第一次使用您的應用時出現的嗎?
  • 您的應用程序是ligth(微服務)還是單體應用程序? Xms和-Xmx參數取決於此。

在tomcat中部署war文件時,會使用tomcat java內存的某些部分,並且tomcat無法很好地管理它。這是一個證明,如果您在不重新啓動的情況下多次部署同一個應用程序,則會在tomcat日誌中顯示一個超級內存。

如果你在生產環境中:

  • 使用一個Tomcat的由應用程式。因此,您可以部署,停止,啓動,重新啓動等應用程序,而不會影響其他應用程序的風險。 如果您在部署一次後重新啓動tomcat,則部署階段的內存錯誤將消失。

  • 使用tomcat-docker。用docker你可以殺死整個tomcat廣告,在每個部署中啓動一個新的實例。所以你的tomcat會很乾淨。

相關問題