JVMプロジェクトの論文をチューニング

チューニング・プロジェクト

 

エンジニアとして、プロジェクトの調整の問題は、問題に精通して取得する必要があります。春ブーツプロジェクトでは、主にチューニングプロファイルパラメータとJVMの方法による。

 

ここでは良い記事があり、私はすべての人にお勧め!「春のブートプロジェクトとTomcatの設定JVMパラメータ」

 

https://zhuanlan.zhihu.com/p/31803182

 

 

設定ファイルを変更します。1.

 

コンフィギュレーション・ファイルapplication.propertiesを修正について、「春ブーツは、プロジェクトプロファイルは、文書を変更詳細を。」を推奨

 

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html#common-application-properties

 

もっと重要なのは、次のとおりです。

 

server.tomcat.max-connections=0 # Maximum number of connections that the server accepts and processes at any given time.
server.tomcat.max-http-header-size=0 # Maximum size, in bytes, of the HTTP message header.
server.tomcat.max-http-post-size=0 # Maximum size, in bytes, of the HTTP post content.
server.tomcat.max-threads=0 # Maximum number of worker threads.
server.tomcat.min-spare-threads=0 # Minimum number of worker threads.

 

2. JVMのチューニング

 

JVMのチューニングOracleの公式ウェブサイトについてのガイダンスノートを持って、我々は行くと見ることができます興味を持っています。「JVMのチューニングのOracleの公式サイトの説明」

 

https://docs.oracle.com/middleware/11119/wls/PERFM/jvm_tuning.htm#i1146060

 

3. JVMのチューニングの戦闘

 

3.1 JVMパラメータが用意されていません

 

今では、デフォルトですべてのJVMパラメータを設定しないと、プロジェクトがあります。今、私は見始めます。

 

スタック割り当てを見ては、デフォルトの最大ヒープメモリは8G、明らかに不合理なものを割り当てられました。

 

3.2私たちはJVMのパラメータを設定してみましょう

 

例えば、JVMこのような大きなセグメントパラメータを設定します。

 

 

-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC

 


あなたは、このようなIDEAプロジェクトとして開発ツール起動して実行を使用している場合、それはあまりにも多くのデバッグJDKに簡単ですので。VMオプションにパラメータ値を設定するだけですることができます。

 

 

セットアップし、私のGCログとスタック割り当てはOKでした。GCログ:

 

スタック割り当て:

 

第二の方法

 

セットアップを実行するスクリプトまたはコマンドラインを使用したときに、プロジェクトの後、起動時の展開に適しています。プロジェクトパス内のプロジェクトへの最初のパックには、古いアイテムをクリーンアップ:

 
$ mvn clean

 

 

 

新しいプロジェクトをパッケージング:

 

$ mvn package -Dmaven.test.skip=true
パス実行可能なjarファイルのパッケージパッケージが完了した後:
 

 

 

動作パラメータのJVM起動設定の実行:

 

 

$ java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC newframe-1.0.0.jar

あなたがモニターを見て、この時間は、あなたがして、[OK]を持っています。JVMスタックが開始されたときに開始するように設定されたパラメータに基づいています。

 

 

これらの設定の意味が何であるかについてのJVM引数は、与えられた以前のOracleのチューニング公式ドキュメントを参照してください。私は単にこれを言うためにここにいます:

 

-XX:MetaspaceSize=128m (元空间默认大小)
-XX:MaxMetaspaceSize=128m (元空间最大大小)
-Xms1024m (堆最大大小)
-Xmx1024m (堆默认大小)
-Xmn256m (新生代大小)
-Xss256k (棧最大深度大小)
-XX:SurvivorRatio=8 (新生代分区比例 8:2)
-XX:+UseConcMarkSweepGC (指定使用的垃圾收集器,这里使用CMS收集器)
-XX:+PrintGCDetails (打印详细的GC日志)
知識ポイント
 
JDK8後-XX:PermSizeをと-XX:MaxPermGenが削除され、置き換えられ:
 
 
-XX:MetaspaceSize=128m (元空间默认大小)
-XX:MaxMetaspaceSize=128m (元空间最大大小)

 

JDK8は、ローカライズされたヒープ(ネイティブヒープ)にクラスを開始するためにメタデータ、地域メタスペース、中国の元の名前空間と呼ばれています。

 

ローカライズされたメモリには何が良いのですか?

 

最も直接的な表現でjava.lang.OutOfMemoryErrorです:PermGenスペースの問題が存在しなくなります。メタデータ割り当てられたデフォルトのクラスは、ローカルメモリのサイズ、によってのみ制限されるため、ローカルメモリの残数、することができます理論的にはメタスペースどのようにこの解き十分なスペース(一見容量の問題や、オペレーティング・システムの仮想メモリについての大?ここでは)明確ではありません。

 

メタスペース領域のサイズを指定するには、MaxMetaspaceSizeパラメータ:使用-XX:我々はメタスペースのサイズを制限する必要があるので、しかし、聞かせてメタスペースとなって無限は、明らかに非現実的です。実行時に動的にサイズに応じMaxMetaspaceSize JVMのデフォルト設定。

 

出典:https://www.cnblogs.com/jpfss/p/9753215.html

公開された277元の記事 ウォン称賛65 ビュー380 000 +

おすすめ

転載: blog.csdn.net/ailiandeziwei/article/details/104363950