背景
JavaのJavaアプリケーション・プログラマの開発、通常のリリースのTomcatを使用することを選択したが、:
どのようにTomcatの完全な制御を取るために、それが最高のパフォーマンスを再生してみましょうか?
このインタビューは、ホットな問題、練習の多くの年で、私は今日総括し、李富春たです。
Tomcatを使用してください
ダウンロード
:今、最新の安定版リリースは、ダウンロードページtomcat9あるhttps://tomcat.apache.org/download-90.cgi
パッケージの5種類の違いをダウンロード
一般的に、我々は、Tomcatを実行しているコアパッケージを選択した、または直接実行するミラーリングドッキングウィンドウを選択します。
tomcatディレクトリの説明:
インストール
直接抽出、解凍コマンド:tar -zxvf tomcat-xxx.tar.gz
開始と停止
ガイドrunning.txtで起動するには、2つの方法を指示に従ってください:
1、sh ${catalina.home}/bin/startup.sh
2、 sh ${catalina.home}/bin/catalina.sh start
ストップTomcatに二つの方法に対応します:
1、sh ${catalina.home}/bin/shutdown.sh
2、 sh ${catalina.home}/bin/catalina.sh stop
ジャーナル
ログには、四つのグループのTomcatに作ら
1、ログのすべてのレベルで最近catalina.date.out;
2、ローカルホスト・date.logエラーログ
リアルタイムログの表示コマンド: tail -f catalina.out
AJPプロトコル
Tomcatは、一般的に他のHTTPサーバとの接続を確立するために使用されます。
たとえば、Apache + Tomcatは、静的および動的な分離操作を行います。
apacheのすべての静的リソースを扱います。
AJPプロトコルによって、TomcatのJK(負荷分散構成要素)によって転送Apacheの動的リソース要求。
Tomcatの監視
ROOTの下のwebapps Tomcatのデフォルトのままにしておき、ホスト・マネージャー、管理アプリケーションは、単一ノードのTomcatのステータスを監視することができます。
デフォルトではアクセスできません、ユーザーと参照する権限を追加する必要が、それ以外の場合は403を報告します。
増加させる方法: conf/tomcat-user.xml
<role rolename='admin' />
...
<user username='admin' password='admin' roles='admin,admin-gui,admin-script,
manager-script,manager-gui,manager-jmx,manager-status' />
次のページのモニタリング:
サーバーのステータス:バージョン情報とTomcatのJVM、パーティション情報、JVM内部Tomcatのスレッドプールの状態を見ることができます。
マネージャーアプリ:Tomcatの下で実行するアプリケーションの管理、コントロールボタンを提供し、起動、停止、再起動、アンロードだけでなく、新しいアプリケーションをインストールするためのノンストップサービス。
ホストマネージャ:管理バーチャルホスト、即ち、エイリアス構成およびアプリケーションのTomcatへの二次的経路を提供します。
IOのTomcatのチューニング
JavaのNIO IOプロセスのtomcat9のデフォルトの使用。
ログファイルと設定ファイルから見ることができます。
09-Apr-2020 07:46:27.606 信息 [main] org.apache.coyote.AbstractProtocol.start
开始协议处理句柄["http-nio-8080"]
4月最適化IO
オペレーティングシステムレベルからの非同期IOの問題を解決するために、月(Apacheのポータブルランタイム)を使用して、あなたは、パフォーマンスを大幅に向上させることができます。
Linuxは4月とTomcatネイティブをインストールした場合、Tomcatは4月をサポートするために始めました。
NIOはBIOの古いバージョンを最適化
BIOを(ログを見ることができる)を使用して、Tomcatの旧バージョンの場合は、NIO、調整方法に調整することができます。
conf/server.xml
古い設定:
<connector protocol="HTTP/1.1" />
新しいコンフィギュレーション:
//tomcat6选择nio1
<connector protocol="org.apache.coyote.http11.Http11NioProtocol" />
//tomcat8选择nio2,apr性能更好
<connector protocol="org.apache.coyote.http11.Http11Nio2Protocol" />
<connector protocol="org.apache.coyote.http11.Http11AprProtocol" />
Tomcatのスレッドプールのチューニング
Tomcatがデフォルトスレッドプールでは有効になっていない、あなたは効率を改善するために、スレッドプールのスレッドを有効にすることができます
スレッドプールパラメータ:
カスタムスレッドプール
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
設定コネクタを有効にします
<connector executor="tomcatThreadPool">
コネクタパラメータ
JVM Tomcatのチューニングパラメータ
GCの最適化
#gc优化
JAVA_GC="-XX:SurvivorRatio=10
-XX:MaxTenuringThreshold=15
-XX:NewRatio=2
-XX:+DisableExplicitGC
-Djava.security.egd=file:/dev/./urandom"
JVMおよび最適化されたスレッドプール
JVM_LEVEL="info"
JVM_Xms="100m"
JVM_Xmx="2048m"
JVM_Xmn="600m"
JVM_Xss="256k"
TOMCAT_acceptCount=4096 线程可以接受的请求数量
TOMCAT_maxThreads=512 最大线程数
TOMCAT_minSpareThreads=512 初始线程数
概要
Benpianは、Tomcatの基本を見直します。
だけでなく、Javaアプリケーションの監視Tomcatの組み込みのモニターを使用するには、いくつかの基本的な知識。
そして、仕事の経験と組み合わせて、三つの側面からTomcatのチューニングは、スレッドプール、JVMをioの
オリジナルは、それについての親指の懸念のサポートは容易ではありません!コミュニケーションを歓迎し、私たちの相補性と共通の進歩させ、ソースを明記してください。
私は、プログラミング、国民の関心番号「李富春連続出力」あなたにシェア「材料学習」を送信を学ぶために、すべてのこれらの年一緒にさまざまなリソースを入れて、キャリアパスを開発するための知識やソフトウェアのプログラマのプログラミング歓迎注目を集めたJavaを共有していきます!