2013-03-26 169 views
0

我們在1G RAM的linode(Ubuntu 10.04 32位)上有5個應用程序。最近我們將其中一個應用程序從該linode轉移到另一個512M。該應用程序基於Java EE構建,並且在舊服務器上運行得非常穩定。然而,在新的服務器上,tomcat(兩臺服務器上的版本6)都會偶爾崩潰,而且沒有任何日誌。新服務器唯一的區別在於,我們使用nginx作爲舊服務器上的apache2的Web服務器,而新服務器使用Ubuntu 12,64位。沒有理由懷疑內存泄漏,因爲應用程序在舊服務器上表現良好。是否有任何tomcat optmizations來防止這種類型的崩潰。我懷疑是否由於流量造成負載的原因(因爲新服務器的RAM較低),因爲即使在半夜只有大約10個併發用戶的情況下,tomcat仍然崩潰。任何有關這個問題的見解將不勝感激。Tomcat6不斷崩潰

我檢查了RAM的使用情況,並且tomcat經常佔用大約60%的內存,並且所有突然崩潰並且變爲0.我已經使用bash腳本並在新服務器上每5分鐘運行一次cron作業檢查tomcat是否關閉並自動重啓。那可能會導致這個問題?腳本在下面提到

if [ "$(/etc/init.d/tomcat6 status)" == " * Tomcat servlet engine is not running." ]; then /etc/init.d/tomcat6 start; fi 

請注意,我不是服務器配置的專家。我可以配置一臺服務器來安裝並獲取所需的東西。

+0

JVM是否相同?他們的設置是否爲xmx,permgen ...相同? – 2013-03-26 07:40:29

+0

沒有...因爲新服務器上的內存較小,我已將這些值設置爲128m和256m,而舊服務器上的值爲256m和512m。 – 2013-03-26 09:10:49

+0

也許linux的OOM殺手會殺死你的tomcat。在發生崩潰時,您應該檢查系統日誌是否有任何異常主機。另外看看兩臺機器的jvm版本。 – 2013-03-26 09:26:27

回答

0

您將應用程序從32位Hotspot JVM移至64位Openjdk JVM。而在新的服務器上,你的RAM更少。

首先,我會嘗試在新服務器上安裝相同的32位熱點JVM,並查看是否仍然發生崩潰。如果他們這樣做,我會開始增加更多的內存,並相應地調整xmx等。

0

我將RAM升級到1GB,降級到Ubuntu 12,32位,重新安裝了JVM 32位,現在服務器就像一個魅力。我無法根除原因,但最可能的原因應該是64位操作系統或64位JVM佔用太多內存。謝謝你的幫助。