パフォーマンスの最適化| TomcatとJVMのパフォーマンス・チューニングの概要

Tomcatのパフォーマンスチューニング:

server.xmlファイルの内容を変更し、Tomcatのルートディレクトリの下のconfディレクトリを検索します。、私が学んできた曲のこの部分については、初期化時に作成されたスレッドの数と同時TomcatのTomcatサーバーの最大数の設定についてのセット以外の何ものでもありません、もちろん、他のパフォーマンスチューニングの設定があり、以下である私の私のマシンのパフォーマンスによって設定されたいくつかのパラメータの値は、あなたにそれについての詳細な説明を与えます:

TomcatとJVMのパフォーマンス・チューニングの概要

1、はURIEncoding = "UTF-8":Tomcatの文字セットを設定します。私たちはTomcatの文字セットがあまりにも硬すぎる変更を直接、特定のプロジェクトに文字化け特定の治療について変換されますので、この設定は、我々は一般的に、設定されていません。

2、maxThreadsの= "300":同時現在のTomcatの最大数を設定します。リクエストのTomcatの最大数のデフォルトの設定では、同時に150の同時をサポートすることができる、つまり、150です。しかし実際には、同時ハードウェア性能の最大数とCPUの数は素晴らしい関係、より良いハードウェアを持って、より優れたプロセッサは、Tomcatは、より多くの同時をサポートするようになります。一般的に、実際の開発では、アプリケーションは250以上の同時を持っている場合、アカウントにクラスタ化されたアプリケーション・サーバを取る場合。

3、minSpareThreads =「50」:現在のTomcatの初期に作成されたスレッドの数を設定し、デフォルト値は25です。

4、acceptCountを=「250」:同時接続maxThreadsの数は、パラメータセットの値に達すると、接続の数は、キューを受信することができるが、接続を拒否し、この接続を介して直接返します。処理要求が任意の数のスレッドが使用されている使用することができたときに指定し、要求の数は、より多くの処理されません要求の数よりも、キュー・プロセスに入れることができます。デフォルト値は100です。実際には、あなたは、同時のTomcatの数を増やしたい、ともacceptCountをとmaxThreadsの値を増やす必要がある場合

TomcatとJVMのパフォーマンス・チューニングの概要

5、enableLookups =「false」の場合:通常、処理能力を高めるためにはfalseに設定し、逆引き参照ドメイン名を開くかどうか、その値も真、めったに使いません。

6、maxKeepAliveRequests =「1」:nginxのダイナミック転送tomcatに、nginxのがキープアライブされていませんが、デフォルトで有効になってTomcatのエンドキープアライブ、キープアライブタイムアウトを待つことになる、デフォルトの設定はのConnectionTimeoutを使用しないことです。タイムアウトのTomcatと近いキープアライブTomcatの設定が必要です。それ以外の場合は、Tomcatの多くTIMEWAITソケットを生成します。maxKeepAliveRequests =「1」、それによってある程度離れダイTomcatを回避し、TomcatのTIME_WAITの接続を大量に回避することができます。

JVMのチューニング:

Tomcatの自体またはJVM上で実行するには、JVMパラメータは、Tomcatを調整することによって、私たちはより良いパフォーマンスを持つことができます。メモリチューニングとガーベジコレクションのポリシーの調整:現在JVMをチューニングするための2つの主要な側面を持っています。

TomcatとJVMのパフォーマンス・チューニングの概要

メモリー・チューニング

起動パラメータは、JVMプロセスの起動パラメータとしてJAVA_OPTSをバックアップしますので、ファイルをcatalina.shするJAVA_OPTS変数を設定し、Tomcatのルートディレクトリの下のbinディレクトリに移動します。Java仮想マシンのメモリ構造がやや複雑であるだけでなく、私が理解する上で多くの人々は非常に抽象的であると信じて、それがヒープ、スタック、およびガベージコレクションのメソッドゾーンシステムのいくつかの部分に分かれているので、ここでは、インターネットからの私のチョップです図のメモリ構造:

TomcatとJVMのパフォーマンス・チューニングの概要

それのメモリチューニングピース、自身のメモリ空間の大きさを変更することによって、より多くの何も、アプリケーションは以下の、より合理的な使用できるように右、あなたに各パラメータの意味の詳細な説明を与えるために、私のマシンの設定の性能に応じて、私のパラメータであります:

1、-Xmx512mは:ヒープサイズ=サイズ+パーマネント生成サイズのサイズ+旧世代にわたって兆(M)、若い世代:Java仮想マシン、ユニットのヒープの最大利用可能なメモリサイズを設定します。永久的な生成は、一般に固定サイズの64メートルです。ヒープの異なる分布は、それがシステムに何らかの影響を持つことになります。可能な限り、古いGCの(高齢者の通常比較的遅い回復)の数を減らすために、新世代のオブジェクトを予約します。実際には、初期値は、典型的には、このようにしてそのプログラムの性能を向上させる、実行しているプログラムによって実行広がりガベージコレクションと空間の数を減少させる、最大値及びスタックに等しく設定されます。

2、 -Xms512m :设置Java虚拟机的堆的初始值内存大小,单位:兆(m),此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

3、 -Xmn170m :设置年轻代内存大小,单位:兆(m),此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。一般在增大年轻代内存后,也会将会减小年老代大小。

4、 -Xss128k :设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M,以前每个线程栈大小为256K。更具应用的线程所需内存大小进行调整。

在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

5、 -XX:NewRatio=4 :设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5 。

6、 -XX:SurvivorRatio=4 :设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6。

7、 -XX:MaxPermSize=16m :设置持久代大小为16m,上面也说了,持久代一般固定的内存大小为64m。

8、 -XX:MaxTenuringThreshold=0 :设置垃圾最大年龄。

如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。

如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。

TomcatとJVMのパフォーマンス・チューニングの概要

二、垃圾回收策略调优

Tomcatのルートディレクトリの下のbinディレクトリに移動しますがcatalina.shファイルJAVA_OPTS変数に設定されています。正確には、このため私たちは、多くの場合、ガベージコレクションのポリシーのJava仮想マシンはそれに応じて調整することが、我々は、すべてのJava仮想マシンがデフォルトのガベージコレクションを持っていることを知っているが、別のガベージコレクションのメカニズムの効率が異なっています。ここでは、ガベージコレクションによって私の戦略の一部を構成するために必要です:

TomcatとJVMのパフォーマンス・チューニングの概要

シリアルコレクタ、コレクタ並列と並行コレクター:Java仮想マシンのガベージコレクションの方針は、一般的に分割されています。

シリアルコレクター:

図1は、-XX:+ UseSerialGC:シリアルコレクタの代わりにガベージコレクションポリシー、即ち、スキャンの全体のプロセスであり、時間の要件を一時停止する単一のCPU、小さく、スペースの新しい世代に適用されるシングルスレッドアプローチをコピー非常にありません高いアプリケーションは、デフォルトでは、主にガベージコレクションのJDK1.5形式の前に、クライアントレベルのGC法です。

同時コレクター:

1は、-XX:+ UseParallelGC:パラレルコレクタ(優先スループット)の代わりにガベージコレクションポリシーは、すなわち、スキャニングは、アプリケーションのマルチ、短い休止時間の要件のためにCPU、全体の複製プロセス及びマルチスレッドようにわたって行われますサーバーレベルで使用されるデフォルトのGC法です。この構成では、若い世代のために有効です。この構成は、まだシリアルコレクターの古い世代を使用しながら、若い世代は、同時コレクションを使用できるようにすることができます。

2、-XX:ParallelGCThreads = 4:多くのガベージコレクションのスレッドと同時に:すなわち、スレッドの数パラレルコレクタ構成。この設定値は、プロセッサの数に等しいことが好ましいです。

3、-XX:+ UseParallelOldGC:設定し、旧世代のガベージコレクションが並行して収集されます。パラレルコレクターの旧世代のためのJDK6.0のサポート。

4、-XX:MaxGCPauseMillis = 100:あなたはこの時間を満たすことができない場合には、たびに最大の時間を若い世代のガベージコレクションを設定し、JVMが自動的にこの値を満たすために若い世代のサイズを調整します。

5、-XX:+ UseAdaptiveSizePolicy:このオプションが設定され、自動的に最も低い目標周波数に対応した若い世代領域のサイズと対応するレートサバイバー領域、所定の時間を選択するか、システムを収集するパラレルコレクタは、この値は、並列コレクタを使用することが推奨されますデバイスが開かれたとき。

おすすめ

転載: www.cnblogs.com/wyf0518/p/11456858.html