オリジナル住所ます。https://mp.weixin.qq.com/s/7_bz3OPoH3x7xkkwkhJhbw
このチューニングTomcatは、インタビューは頻繁に尋ねました。現在、Tomcatのチューニングは、2つのカテゴリに分類することができ、現在のバージョンは、によって説明されるTomcatの8:
Tomcatの自身のチューニング:静的および動的な分離性能のチューニングを使用すると、動作モードTomcatのAJPコネクタを無効にするには、コネクタを変更するように調整TomcatのTomcatのTomcatのスレッドプールを保存します
:JVMチューニングチューニングメモリJVMを
1. Tomcatは、それ自体をチューニング
1.1静的および動的分離を使用し
あなたは、パフォーマンスTomcatが消耗の多くになりますので、私たちが一般的に使用されている場合はTomcatが静的リソースを処理させる場合:nginxの+ Tomcatは、静的および動的な分離を達成、nginxのは、静的なリソースへのアクセスを達成するため、TomcatはJSPファイルを解析するための唯一の責任がありましょう。
Tomcatの1.2スレッドプールのチューニング
エグゼキュータ構成のserver.xmlにTomcatを開き、次のように関連するパラメータです。
< エグゼキュータ名= "tomcatThreadPool" namePrefix = "カタリナ-exec-" maxThreadsの= "500" minSpareThreads = "20" MaxIdleTimeエレメン= "60000" />
名前:アクチュエータ(スレッドプール)名に、
namePrefix:各スレッド名の接頭辞指定されたスレッド・プール。
maxThreadsの:スレッドプール内のスレッドの最大数は、要求の数が750を超えて、このプロパティの値はmaxThreadsの750に設定されていることを意味すると仮定し、それが最善の解決策を使用することです「Tomcatのクラスタを。」要求1000、TomcatのmaxThreadsの= 500設けられた二つの実施例は、単一のTomcatインスタンスの場合にmaxThreadsの= 1000を設けずに、存在する場合には、です。
minSpareThreads:スレッドプール内のスレッドの数が許容するアイドル(過剰スレッドが殺されます)。
MaxIdleTimeエレメン:アイドルスレッドが長いスレッドのアイドルと考えられている(ミリ秒、ここでの設定は1分です)。
他の構成は、実際に公式文書を読んでいること「最高です参照リンクを参照してください。」
チューニングのTomcat 1.3コネクタコネクタ
< コネクタキュータ= "tomcatThreadPool" ポート= "8080" プロトコル= "HTTP / 1.1" のConnectionTimeout = "20000" enableLookups = "false"に はURIEncoding = "UTF-8" にredirectPort = "8443" />
エグゼキュータ:アクチュエータ(スレッドプール)によって使用される接続を指定し、エグゼキュータ1.2構成名前。
ポート:アクセスポート。
プロトコル:着信トラフィックを処理するプロトコルを設定し、デフォルト値は、HTTP / 1.1、自動的に非ブロッキングのJava NIOコネクタまたはネイティブコネクタベースAPR /に基づいて選択され、スイッチング機構を使用するあります。
enableLookups =偽:DNS解決オフ、パフォーマンスの損失を低減。
URIEncoding:指定されていない場合は文字エンコーディングは、デフォルトではUTF-8です
minProcessors:サーバーの起動時にスレッドの最小数を作成します。
redirectPort:リクエストが非SSLをサポートしていない場合、それは削除することができ、ポートをリダイレクトします。
他の構成は、実際に公式文書を読んでいること「最高です参照リンクを参照してください。」
Tomcatを変更することによって、1.4動作モード
Tomcatの設定が付属していたバージョンは、手動で指定することができない場合、これは、コネクター構成プロトコル属性を参照します。
BIO:Tomcat8バージョン以下は、デフォルトではモード「IO)を遮断する」BIOを使用することです。各要求に対して高い並行処理には適していない処理のためのスレッドを作成する必要があります。
NIO:Tomcat8以降は、デフォルトではNIOモードを使用することで、「非ブロックIOを。」
4月:Apacheのポータブルランタイムの完全な名前は、好ましい実施形態Tomcatの生産ランで4月4月のパスまたはなしオペレーティングシステムがデフォルトのパス認識Tomcatに割り当てられていない場合は、4月のモデルは開始できない、NIO自動切り替えモードを開始します。APRをサポートするために、APRとネイティブ、直接的なスタートをインストールする必要があるAPRは、オペレーティングシステムレベルからの非同期IOの問題を解決する、APRの性質はJNIの技術を使用することですあなたが事前にインストールする必要があるので、必要なアップグレードのTomcatに依存して、基礎となるオペレーティング・システムIOインターフェースを呼び出しますパフォーマンスを処理するための静的ファイルは、もちろん、また、静的および動的な分離を使用することができます。
1.5を無効にAJPコネクタ
AJPコネクタが無効になってAJPは、nginxの+ Tomca tのフレームワークなので、不要AJPプロトコルを使用して、ApacheのJServerのプロトコルを意味します。これは、次の外にある注意してください:
<! - ポート8009上のAJP 1.3コネクタを定義します- > < コネクタポート= "8009" プロトコル= "AJP / 1.3" にredirectPort = "8443" />
2. JVMのチューニング
TomcatはJVM上で実行されているので、JVMのチューニングも非常に必要です。Catalina.shは\ビンファイルで見つかりました。
前の行のCygwin = falseを追加JVMパラメータで:
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8-server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XXermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"
ガベージコレクション時間のヒープのサイズを調整する目的は、特定の時間内にクライアントが要求するプロセスを最大化するために最小化されます。
参考文献:
https://tomcat.apache.org/tomcat-8.0-doc/config/index.html
https://tomcat.apache.org/tomcat-8.0-doc/config/http.html
https://tomcat.apache.org/tomcat-8.0-doc/config/executor.html