はじめに最終的にはクイック
デフォルトは組み込みのTomcatの使用SpringBoot Webプロジェクトでは、もちろん、それが良いものを内蔵し、内蔵の桟橋をサポートするように設定することができますか?
-
マイクロ便利なサービス展開。
-
簡単にプロジェクト開始、TomcatやJettyのをダウンロードする必要はありません
現在のコンテナ最適化のために、あまりにも多くの場所がない、主にほとんど十分に以下の点を考慮して
-
スレッド
-
タイムアウト
-
JVMの最適化
これらの最適化のポイントに応じて、スレッドの数の最初の焦点である、最初のスレッドは、複数のスレッドとスレッドの最大数に分割されます。
1は、スレッドの初期数は、アクセスするための多数のユーザーが存在する場合、その要求を受け入れ、非常に安定することができ、スタートアップを保証します。
遅延を超える要求の大量が比較的高い場合2は、接続の数を保証する訪問のピークにおけるシステムの安定性を確保するために使用されるスレッド、およびタイムアウトの最大数が圧倒ことは容易ではないが、演奏をスレッドすることは容易ではありません。この場合、生産は、ネットワークが不安定になると、マシンはかなりの損失を圧倒したくないだろう、より一般的です。
3は、一般的にシーンを最適化するために、JVMがないくらい、何より最も一般的に(下記に注意してください)、初期ヒープを増やし、上限を積み重ね、そして場合によっては確かに、無限に成長しないために使用されます。
春のブートコンフィギュレーション・ファイルapplication.ymlでは、以下の設定を追加
サーバー:
Tomcatの:
スペア・スレッド分:20
MAX-スレッド:100
接続タイムアウト:5000
Tomcatが最適化された構成の一部であった、スレッドの最大数は、スレッドを初期化し、100でタイムアウトが5000msであり、20であります
springbootは、Tomcatのデフォルト値が割り当てられています:
/ ** *ワーカースレッドの最大量。 * / プライベート int型 maxThreadsの= 200 ; / ** *ワーカースレッドの最小量。 * / プライベート int型 minSpareThreads = 10 ; / ** *コネクタが接続を閉じる前に、別のHTTPリクエストを待つ時間。 設定されていない場合は*、コネクタのコンテナ固有のデフォルトが使用されます。値-1を使用し タイムアウトなし(つまり、無限である)を示すために、*を。 * / プライベート期間のConnectionTimeout。
ConnectionTimeoutパラメータが導入さ:コネクター(Tomcatのコネクタ)、別のHTTPリクエストに接続を閉じる前の待ち時間は、(接続多重化から生じることを、接続を閉じ、でもhttpリクエストする前にこの時間を超えているかのように理解することができます)を意味します。設定されていない場合は、コネクタを使用して特定のコンテナのデフォルト値は、(ここではspringbootフレームワークは、デフォルト値を持っていることは、Tomcatを構築する必要があり、そのデフォルト値を設定しません)。-1の値はなし(すなわち無限の)タイムアウトがあることを示し使用(閉塞、注意につながる可能性、接続が持続する可能性があることを意味しません)。
これのConnectionTimeoutパラメータは、のKeepAliveTimeout Tomcatのレーン代わりのConnectionTimeoutパラメータに対応します。
サーバ・クラスの構成に対応します:
JVMの最適化
これは主に、最適化する方法について話されていない、JVMは(別のプロジェクトのように3グラムの前にopenfireと同じメモリ要件ではないが、それには通常のWebプロジェクトのかもしれ512Mので)のシーンを最適化する必要があります。一般的には指定された次のパラメータは、サーバ側で実行されます
初期メモリと最大メモリは、これらのコレクターがない限り、デフォルトを使用することができるようになりますように、使用する必要があります-serverはパラメータであり、シーンに応じて、(なぜ、のような、このブログを参照してください)同じ基本的に特定のサイズ設定が設定されます。特定のニーズ。
-serverモード1.使用
サーバーモードを使用してJVMを設定します。64 JDKのデフォルトの起動モード
-jar springboot-1.0.jar -server javaの
2.ヒープのパラメータを指定してください
ヒープのパラメータを設定するには、サーバのメモリサイズ。
-
-Xms:Javaのスタックの初期サイズを設定します。
-
-Xmxます。javaの最大ヒープサイズを設定
Javaの-server -Xms512m -Xmx512m -jar springboot-1.0.jar
設定した初期化ヒープメモリが768メガバイトまで、512MBです。
3.リモートデバッグ
次のように修正されたサーバーの起動パラメータには:
java -Djavax.net.debug= ssl -Xdebug -Xnoagent -Djava.compiler= NONE -Xrunjdwp:transport= dt_socket,server=y,suspend= n,address=8000 -jar springboot-1.0.jar
这个时候服务端远程 Debug 模式开启,端口号为 8000
在IDEA中,新增一个 Debug
在【1】中填入Remote项目名称,在【2】中填IP地址和端口号,在【3】选择远程调试的项目module,配置完成后点击OK即可
如果碰到连接超时的情况,很有可能服务器的防火墙的问题,关闭防火墙
JVM工具远程连接
jconsole与Jvisualvm远程连接
通常我们的web服务都输部署在服务器上的,在window使用jconsole是很方便的,相对于Linux就有一些麻烦了,需要进行一些设置。
1.查看hostname,首先使用
hostname -i
查看,服务器的 hostname 为127.0.0.1,这个是不对的,需要进行修改
2.修改hostname
修改/etc/hosts文件,将其第一行的“127.0.0.1 localhost.localdomain localhost”,修改为:“192.168.44.128 localhost.localdomain localhost”.“192.168.44.128”为实际的服务器的IP地
3.重启Linux,在服务器上输入hostname -i,查看实际设置的IP地址是否为你设置的
4.启动服务,参数为:
java -jar -Djava.rmi.server.hostname=192.168.44.128 - Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=911 - Dcom.sun.management.jmxremote.ssl=false - Dcom.sun.management.jmxremote.authenticate=false jantent-1.0-SNAPSHOT.jar
ip为192.168.44.128,端口为911 。
5.打开Jconsole,进行远程连接,输入IP和端口即可
点击连接,经过稍稍等待之后,即可完成连接,如下图所示:
同理,JvisualVm的远程连接是同样的,启动参数也是一样。
然后在本机JvisualVm输入IP:PORT,即可进行远程连接:如下图所示:
相比较Jvisualvm功能更加强大一下