1、tomcatにすることの重要性
2.学習目標:Tomcatのインストール、Tomcatの一般的な設定、構成、およびビューを記録し、JVMのチューニング
3、TomcatとJVMの関係
https://github.com/aminglinux/tomcat
エンタープライズJavaEEのサイトを行います
使用するJavaSEは、コンピュータソフトウェアのStandard Editionを行います
JavaMEのマイクロエディション電話のソフトウェアを行います
JDKのJava開発およびランタイム環境JDK = Java開発ツール+ JRE
ポートは8005★起動しない場合は、アクセス8080は正常ではない、とシャットダウンすることはできません
次のように解決策は以下のとおりです。
編集$ JAVA_HOME / JRE / libに/セキュリティ/ Java.security
securerandom.source =ファイル:は/ dev /ランダム、代わりに
securerandom.source =ファイル:は/ dev / urandomが
1、Tomcatのスタンドアローンのマルチインスタンス
http://www.ttlsa.com/tomcat/config-multi-tomcat-instance/
・インストールのTomcat
2つのウェブサイトのディレクトリを作成する。・Tomcatのディレクトリ
・confに、ログ、Webアプリケーション、一時は、2つのディレクトリをコピーするには、別途作業します
・両方のディレクトリにそれぞれのserver.xmlの設定
・設定したマルチインスタンスの起動スクリプトは、二つのディレクトリの下に作成されたtomcat.sh
・フーの起動スクリプトのパーミッション
それぞれ・Tomcat.sh次の実行tmocat.shディレクトリにcd
Tomcatを提供2、JVMの設定と接続
http://www.cnblogs.com/bluestorm/archive/2013/04/23/3037392.html
1)、エラーメッセージ:java.lang.OutOfMemoryErrorを:Javaヒープスペース
Linux修正"%TOMCAT_HOME%\ binに\ catalina.sh " 環境でのファイル
「 - Xms256m -Xmx512m」JAVA_OPTS =:ファイルの次の先頭を追加するように配置され
これは、-Xmsが-Xmxは最大メモリが使用可能に設定し、初期メモリサイズを設定します。
2)、エラーメッセージ:java.lang.OutOfMemoryErrorを:PermGen空間
catalina.shの増加の最初の行には:
JAVA_OPTS = -Xms64m -Xmx256m -XX:PermSizeを= 128M -XX:MaxNewSize = 256メートル -
XX:MaxPermSizeを= 256メートル
3)、JVM提供
ヒープサイズ
バイトで-Xmssize
初期のJavaヒープサイズを設定し、デフォルトのサイズは2097152(2メガバイト)です。この値は、1024バイト(1キロバイト)の倍数で、それよりも大きい必要があります。(-serverオプションはデフォルトサイズは32Mに増加しています。)
バイトで-Xmnsize
エデンJavaは初期ヒープサイズを設定するオブジェクトを、デフォルトは640Kです。(-serverオプションは2Mまで上昇し、デフォルトのサイズです。)
バイトで-Xmxsize
デフォルトは64Mで、最大Javaヒープサイズを設定し、
Tomcatの接続の設定
<コネクタ... /> Tomcatのserver.xml構成ファイル内に配置され、接続および関連するパラメータの数:
minProcessors:スレッドの最小空き接続数、システムの処理性能を向上させるため、デフォルト値は10であります
maxProcessors:つまりスレッドの最大接続数:処理された同時要求の最大数は、デフォルトは75です
acceptCountを:許可される接続の最大数、以上maxProcessorsであるべきで、デフォルト値は100であります
enableLookups:逆引きドメイン名は、値があるかどうか:trueまたはfalse。処理能力を向上させるためには、falseに設定する必要があります
ConnectionTimeout:ネットワーク接続のタイムアウト、単位:ミリ秒。タイムアウトしないように0に設定すると、その設定リスクがあります。一般的には30000ミリ秒に設定されています。
・内のパラメータとmaxProcessorsとacceptCountをに関連する接続の最大数。あなたは、同時接続の数を増やしたい場合は、両方のパラメータを増やしながら、
3、JMX監視のTomcat
http://ask.apelearn.com/question/23469
JMXは、Java管理拡張機能に翻訳は、Java Management Extensionsの速記、です。JMXは、主に私たちは、JVM(Java仮想マシン)を監視するために使用されます。
JMX Tomcatサーバーを開く方法?
1)編集catalina.sh
#Vimの/usr/local/tomcat/bin/catalina.sh
!増加し、次の#/ binに/ bashで#:
輸出CATALINA_OPTS = "$ CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname = 192.168.18.101
-Dcom.sun.management.jmxremote.port = 9999
偽= -Dcom.sun.management.jmxremote.ssl
「偽= -Dcom.sun.management.jmxremote.authenticate
2)Tomcatを再起動します
#1 /usr/local/tomcat/bin/shutdown.sh
#1 /usr/local/tomcat/bin/startup.sh
3)ポートの検出を監視します
#netstatの-ltnp | grepを9999
JConsoleの上でWindowsをインストール
- インストール後、binフォルダに移動し、その後からjconsole.exe実行を見つけるために、ファイルをダブルクリックして、JDKのインストールパスを見つけます。ポート接続:JMX-IPを入力します。
- それから、「安全でない接続」をクリックしてJConsoleのインターフェイスを入力します。
- あなたは情報の記憶を見ることができるように、スレッドなど
4 、JVMの監視ツールをチューニングJPS / jstack / jmapの/ jhat / JSTAT
http://blog.csdn.net/wisgood/article/details/25343845
http://guafei.iteye.com/blog/1815222
リアリティエンタープライズJava開発の問題が発生しました:
OutOfMemoryErrorが、メモリ不足
メモリリーク
スレッドのデッドロック
ロック競合(ロック競合)
Javaプロセスは、過度のCPUを消費します
1)JPS
JPS [オプション] [ホストID]
あなたはそれを現在のホストのホストIDまたはサーバーへのデフォルト値を指定しない場合。
-qクラス名、JAR名、着信mainメソッドのパラメータを出力しないでください
mainメソッドに渡された-m出力パラメータ
-l出力メインクラスまたはJARの完全修飾名
JVMに渡さ-v出力パラメータ
2)jstack
Javaプロセスの情報を表示するために使用メインスレッドのスタックをjstack。構文は次のとおりです。
jstack [オプション] PID
jstack [オプション]実行コア
jstack [オプション]、[サーバのid @]リモート・ホスト名またはIP-
-l長いリストは、デッドロックが発生したときに、あなたが状況を観察するために開催された-l pidのロックをjstack使用することができ、追加のロック情報を出力します
-m混合モードだけでなく、出力のJava(例えばネイティブメソッドなど)の情報をスタックC / C ++で印刷される情報をスタックします
3)JMP、JT
jmapの(メモリマップ)和jhat(Javaヒープ解析ツール)
jmapのは、一般的な使用jhatと組み合わせヒープメモリ使用量を表示するために使用しました
4)JSTAT (JVM統計監視ツール)
構文は次のとおりです。
JSTAT [generalOption | outputOptions VMID [間隔[秒| MS] [カウント]]]
5、GVMのGC関連
http://www.cnblogs.com/Mandylover/p/5208055.html
http://blog.csdn.net/yohoph/article/details/42041729
1.実行中のプロセスは、それは、不要なオブジェクトをできるだけ早く解放されることを保証するために、短周期オブジェクト、長周期オブジェクトの小さな部分、短い期間のためのオブジェクト、頻繁にガベージコレクションであるほとんどが多数のオブジェクト、長周期オブジェクトを作成しますそれは不頻繁にガベージコレクションのガベージスキャンを必要としないようにします。この競合を解決するために、世代の戦略は、Sun JVMのメモリ管理を使用して。
1)若い世代(若い世代)
2)旧世代(終身在職権のGen)
3)永久世代(パーマGEN)
2.概要
HERE 1)オブジェクトのほとんどが夜オフ特性Chaoshengを有する優先的に割り当てエデンでオブジェクト、マイナーGCメイン洗浄
大容量メモリを占める2)ラージ・オブジェクト()、古いオブジェクト(頻繁に使用)
3)サバイバーは、古い時代、全GCの主要なクリーンアップを入力しますオブジェクトを収容することはできません
Tomcatのメモリ・オーバーフロー
https://blog.csdn.net/ye1992/article/details/9344807