ブラシ32インタビューの質問:あなたはTomcatでパフォーマンスチューニングをどうしますか?

image.png

背景

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' />

次のページのモニタリング:

image.png
サーバーのステータス:バージョン情報とTomcatのJVM、パーティション情報、JVM内部Tomcatのスレッドプールの状態を見ることができます。
image.png

マネージャーアプリ:Tomcatの下で実行するアプリケーションの管理、コントロールボタンを提供し、起動、停止、再起動、アンロードだけでなく、新しいアプリケーションをインストールするためのノンストップサービス。
image.png

ホストマネージャ:管理バーチャルホスト、即ち、エイリアス構成およびアプリケーションのTomcatへの二次的経路を提供します。
image.png

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を共有していきます!

おすすめ

転載: www.cnblogs.com/snidget/p/12664761.html