我們在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
請注意,我不是服務器配置的專家。我可以配置一臺服務器來安裝並獲取所需的東西。
JVM是否相同?他們的設置是否爲xmx,permgen ...相同? – 2013-03-26 07:40:29
沒有...因爲新服務器上的內存較小,我已將這些值設置爲128m和256m,而舊服務器上的值爲256m和512m。 – 2013-03-26 09:10:49
也許linux的OOM殺手會殺死你的tomcat。在發生崩潰時,您應該檢查系統日誌是否有任何異常主機。另外看看兩臺機器的jvm版本。 – 2013-03-26 09:26:27