1

1G RAMのlinode(Ubuntu 10.04 32ビット)上に5つのアプリケーションがありました。最近、アプリケーションの1つをそのlinodeから別の512Mに移動しました。このアプリケーションはJavaEE上に構築されており、古いサーバー上でかなり安定して動作していました。ただし、新しいサーバーでは、tomcat(両方のサーバーのバージョン6)がログなしでクラッシュすることがあります。新しいサーバーでの唯一の違いは、古いサーバーのapache2に対してWebサーバーとしてnginxを使用しており、新しいサーバーはUbuntu 12、64ビットを使用していることです。アプリケーションは古いサーバーで正常に動作していたため、メモリリークを疑う理由はありません。このような種類のクラッシュを防ぐために実行するTomcatの最適化はありますか?同時ユーザー数が10人程度の深夜でも、トラフィックによる負荷(新しいサーバーのRAMが少ないため)が原因かどうかは疑問です。tomcatはまだクラッシュします。問題に対する洞察をいただければ幸いです。

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

私はサーバー構成の専門家ではないことに注意してください。必要なものをインストールして実行するようにサーバーを構成することができます。

4

2 に答える 2

0

アプリを32ビットのHotspotJVMから64ビットのOpenjdkJVMに移動しました。また、新しいサーバーではRAMが少なくなります。

まず、同じ32ビットHotspot JVMを新しいサーバーにインストールして、クラッシュが引き続き発生するかどうかを確認します。もしそうなら、私はより多くのメモリを追加し始め、それに応じてxmxなどを調整します。

于 2013-03-26T12:17:53.273 に答える
0

RAMを1GBにアップグレードし、Ubuntu 12、32ビットにダウングレードし、JVM 32ビットを再インストールすると、サーバーは魅力のように機能します。根本的な原因を特定できませんでしたが、最も可能性の高い原因は、64ビットOSまたは64ビットJVMがメモリを過剰に消費していることです。ご協力いただきありがとうございます。

于 2013-03-26T18:46:08.423 に答える