tomcatパフォーマンスの最適化(メイン)

tomcatのデフォルトパラメータは開発環境用に作成されていますが、本番環境、特にメモリとスレッドの構成には適していません。デフォルトは非常に低く、パフォーマンスのボトルネックになりやすいです。

 

tomcatメモリ最適化

LinuxはTOMCAT_HOME / bin / catalina.shを変更し、前に追加します

JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"
  
  

WindowsはTOMCAT_HOME / bin / catalina.batを変更し、前に追加します

set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
  
  

最大ヒープメモリは1024mで、現在のハードウェアではまだ低いですが、実装時には、マシンの特定のハードウェア構成に従って最適化されます。

 

Tomcatスレッドの最適化


  
  
  1. < コネクタ ポート = "80" プロトコル = "HTTP / 1.1" maxThreads = "600" minSpareThreads = "100" maxSpareThreads = "500" acceptCount = "700"
  2. connectionTimeout = "20000" redirectPort = "8443" />

maxThreads = "600" ///スレッドの最大数
minSpareThreads = "100" ///初期化中に作成されたスレッドの数
maxSpareThreads = "500" ///作成されたスレッドの数がこの値を超えると、Tomcatは不要になったソケットを閉じるスレッド。
acceptCount = "700" //リクエストの処理に使用可能なすべてのスレッドが使用され、この数を超えるリクエストが処理されない場合に、処理キューに入れることができるリクエストの数を指定します

 

httpコネクタの最適化は次のとおりです。クラスタの負荷分散にapacheとtomcatを使用し、apacheとtomcatプロトコルの転送にajpプロトコルを使用する場合は、ajpコネクタを最適化する必要があります。


  
  
  1. < コネクタ ポート = "8009" プロトコル = "AJP / 1.3" maxThreads = "600" minSpareThreads = "100" maxSpareThreads = "500" acceptCount = "700"
  2. connectionTimeout = "20000" redirectPort = "8443" />

 

tomcatには複数のコネクターがあるため、tomcatスレッドの構成は、スレッド・プールを共有する複数のコネクターもサポートします。

まず第一に。/conf/server.xmlを開いて追加します

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />
  
  

最大スレッドは500(一般的なサーバーで十分です)、アイドルスレッドの最小数は20、スレッドの最大アイドル時間は60秒です。

 

次に、<Connector ...>ノードを変更し、executor属性を追加します。executorはスレッドプールの名前に設定されます。

<Connector executor="tomcatThreadPool" port="80" protocol="HTTP/1.1"  connectionTimeout="60000" keepAliveTimeout="15000" maxKeepAliveRequests="1"  redirectPort="443" />
  
  

複数のコネクターが1つのスレッドプールを共有できるため、tomcatThreadPoolスレッドプールを使用するようにajpコネクターを設定することもできます。

 

DNSクエリを無効にする


Webアプリケーションがクライアントの情報を記録する場合は、クライアントのIPアドレスも記録するか、ドメインネームサーバーを介してマシン名を検索してIPアドレスに変換します。

DNSクエリはネットワークを占有する必要があり、非常に遠くにある多くのサーバーまたは機能しないサーバーから対応するIPを取得するプロセスが含まれます。これには、一定の時間がかかります。

server.xmlファイルのConnector要素を変更し、属性enableLookupsパラメータ値を変更します。enableLookups = "false"

trueの場合、DNSクエリに対してrequest.getRemoteHost()を呼び出すことにより、リモートクライアントの実際のホスト名を取得できます。falseの場合、DNSクエリを実行せず、そのIPアドレスを返します

 

 

セッションの有効期限を設定する

conf \ web.xmlのパラメーターで指定:


  
  
  1. < セッション構成 >
  2. < セッションタイムアウト > 180 </ セッションタイムアウト >
  3. </ セッション構成 >
  4. 単位は分です。

 

AprプラグインはTomcatのパフォーマンスを向上させます

  Tomcatは、APRを使用して優れたスケーラビリティとパフォーマンスを提供し、ローカルサーバーテクノロジーをより適切に統合できます。

  APR(Apache Portable Runtime)は、Apache HTTP Server 2.xの中核となる移植性の高いライブラリです。APRには、高度なIO関数(sendfile、epoll、OpenSSLなど)、OSレベルの関数(乱数生成、システムステータスなど)、ローカルプロセス管理(共有メモリ、NTパイプ、UNIXソケット)へのアクセスなど、多くの用途があります。これらの機能により、Tomcatは通常のフロントエンドWEBサーバーとして機能し、他のローカルWebテクノロジーとの統合が向上し、一般的にJavaを単にバックエンドコンテナーとしてではなく、高性能Webサーバープラットフォームとしてより効率的にすることができます。

  本番環境では、特にWebサーバーとしてTomcatを直接使用する場合は、Tomcat Nativeを使用してパフォーマンスを向上させる必要があります。  

  TomcatのAPRの利点を測定する最良の方法は、低速のネットワーク(インターネットのシミュレーション)を使用し、Tomcatスレッドの数を300を超えて開き、多数の同時要求をシミュレートすることです。
  APRがない場合、基本的に300スレッドがすぐに使い果たされ、将来のリクエストは待機する必要があります。しかし、APRを使用すると、並行スレッドの数が大幅に減少し、元の300からすぐに数十にまで減少する可能性があり、ブロックせずに新しい要求が入ります。
  LAN環境では400同時でも処理・送信は一瞬で完了しますが、実際のインターネット環境ではページ処理時間は0.1%以下でほとんどの時間をページ送信に費やしています。APRを使用しない場合、スレッドは一度に1人のユーザーしか処理できません。これにより、ブロッキングが発生します。したがって、実稼働環境でaprを使用することは非常に必要です。

コードをコピー


  
  
  1. (1)APR tomcat-nativeをインストールする
  2. apr-1.3.8.tar.gzは/ usr / local / aprにインストールされます
  3. #tar zxvf apr-1.3.8.tar.gz
  4. #cd apr-1.3.8
  5. #。/ configure; make; make install
  6. apr-util-1.3.9.tar.gzが/ usr / local / apr / libにインストールされている
  7. #tar zxvf apr-util-1.3.9.tar.gz
  8. #cd apr-useful-1.3.9
  9. #。/ configure --with-apr = / usr / local / apr ---- with-java-home = JDK; make; make install
  10. #cd apache-tomcat-6.0.20 / bin
  11. #tar zxvf tomcat-native.tar.gz
  12. #cd tomcat-native / jni / native
  13. #。/ configure --with-apr = / usr / local / apr; make; make install
  14. (2)APRを統合するためのTomcatのセットアップ
  15. Tomcatの起動シェル(startup.sh)を変更し、起動パラメーターをファイルに追加します。
  16. CATALINA_OPTS = "$ CATALINA_OPTS -Djava.library.path = / usr / local / apr / lib"。
  17. (3)成功した​​インストールを判断します。
  18. 次の起動ログが表示されれば、成功です。
  19. 2007-4-26 15:34:32 org.apache.coyote.http11.Http11AprProtocol init

コードをコピー

 

http://blog.sina.com.cn/s/blog_417b97470100glmi.htmlを参照してください 

       http://datadig.blog.163.com/blog/static/171229928201082075946726/

331件のオリジナル記事を掲載 51件の賞賛 44万回の訪問+

tomcatのデフォルトパラメータは開発環境用に作成されていますが、本番環境、特にメモリとスレッドの構成には適していません。デフォルトは非常に低く、パフォーマンスのボトルネックになりやすいです。

おすすめ

転載: blog.csdn.net/y41992910/article/details/97638347
おすすめ