Tomcat+Mysql の高同時実行構成の最適化の説明

Tomcat+Mysql の高同時実行構成の最適化の説明

1.Tomcatの最適化構成

(1)Tomcatのcatalina.batを変更する

Javaをサーバーモードに変更し、jvmのメモリを増やし、

setJAVA_OPTS=-server -Xms1024m -Xmx2048m -Xss512K -XX:PermSize=128m -XX:MaxPermSize=256m
setCATALINA_OPTS=-server -Xms512m -Xmx512m

以下のように表示されます。

Xms: 初期メモリ

Xmx: 最大メモリ

(2)TomcatのServer.xmlを変更する

<Servicename="Catalina"> に次の構成を追加します (テスト済み、10 秒以内に 2000 件の同時接続は問題ありません)。

<Executorname="tomcatThreadPool" namePrefix="catalina-exec-"
最大スレッド数="800" 最小スペアスレッド数="25" 最大アイドル時間="60000"/>
<コネクタエグゼキュータ="tomcatスレッドプール"
ポート="80"、プロトコル="HTTP/1.1"
接続タイムアウト = "60000"
キープアライブタイムアウト="15"
最大キープアライブリクエスト数 = "200"         
           アップロードタイムアウトを無効にする="false"
           enableLookups="false"
リダイレクトポート="8443"/>

maxThreads の数値を大きくしすぎると、次のエラーが発生しやすくなるので注意してください。

2. MySQL設定を最適化する

(1) MySqlのmy.ini (Windows)またはmy.cnf (Linux)を変更する

max_connections=12000 //接続の最大数は通常0〜15000の間ですが、15000を超えないようにしてください。
max_user_connections=0 // ユーザー接続の最大数。0 は制限なしを意味します。 interactive_timeout=31536000 // タイムアウト。接続プールで次のエラーを回避するために 1 年に設定します。 wait_timeout=31536000 

query_cache_size=512m //クエリキャッシュ。次のエラーを回避するには、この値を大きく設定してください。 

キーバッファサイズ=1024m
クエリキャッシュタイプ = 1
最大許容パケット=600m

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MySQL シリーズ 10 同時実行制御を実装するための MySQL トランザクション分離
  • MySQL マルチバージョン同時実行制御メカニズム (MVCC) ソースコードの詳細な説明
  • MySQLのMVCCマルチバージョン同時実行制御の実装
  • 一意の注文番号を生成するためのMySQLの高同時実行方法
  • MySQL ロック制御同時実行方法
  • MySQL トランザクション同時実行問題の解決
  • MySQL データベースにおける高同時実行性の問題を解決する方法
  • MySQL 同時実行制御の原則に関する知識ポイント
  • MySQL マルチバージョン同時実行制御 MVCC の実装
  • MySQLデータの同時更新を処理する方法
  • MySQL はどのようにしてマルチバージョンの同時実行性を実現するのでしょうか?

<<:  Vue3+TypeScriptはaxiosをカプセル化し、リクエスト呼び出しを実装します

>>:  MySQL への接続時に発生する 1449 および 1045 例外の解決方法

推薦する

HTMLボタンを中央に配置する方法

HTML ボタン自体を中央に配置するにはどうすればよいでしょうか? このアイデアは簡単に見つかります...

Docker Composeでコンテナ管理の問題を解決する

Docker の設計では、コンテナは 1 つのアプリケーションのみを実行します。しかし、現在のアプリ...

カラフルな時計効果を実現する JavaScript キャンバス

キャンバスを使ってカラフルな時計を書いてみよう! 1. タイトル(1)時計のケースが与えられ、ページ...

MySQL 8の新機能ウィンドウ関数の役割

MySQL 8.0 の新機能は次のとおりです。 Unicode 9.0 をすぐに完全にサポートウィン...

MySQL ステートメントに一重引用符またはバックスラッシュを含む値を挿入する方法

序文この記事では主に、シングルクォートやバックスラッシュを含む値を挿入するMySQLステートメントに...

JavaScript の手ぶれ補正とスロットリングの説明

目次安定スロットリング要約する安定自動ドアは人を感知してドアを開け、5 秒間のカウントダウンを開始し...

JavaScript のクロージャの問題の詳細な説明

クロージャは、純粋関数型プログラミング言語の伝統的な機能の 1 つです。クロージャをコア言語構造の不...

純粋な CSS3 で美しい入力ボックスアニメーションスタイルライブラリを実現 (テキスト入力愛)

純粋な CSS3 で実装された美しい入力ボックス アニメーション スタイル ライブラリを共有します ...

Nginx の場所に関する一般的なルールの優先順位の問題

目次1. 場所/マッチング2. 場所 = / 一致Locaitonには、完全一致(=)、プレフィック...

Linux で MySQL 5.7.19 をアンインストールする方法

1. MySQLが以前にインストールされていたかどうかを確認するコマンド: rpm -qa|grep...

Gokudōゲームにおけるフロントエンド知識のまとめ

背景日本語を学び始めた当初は、日本語の50音を覚えるのは簡単ではなく、特にカタカナを覚えるのは困難で...

JavaScript を使用してセカンダリ メニューを作成する

この記事では、セカンダリメニュー効果を実現するためのJavaScriptの具体的なコードを参考までに...

デザイン理論:人間中心のデザインコンセプト

<br />思想が東西に分かれていた時代、東洋の叡智を代表するものの一つとして「禅」は多...

jQueryで劇場の座席選択と予約の効果を実現

jQueryは劇場の座席選択と予約の効果を実現します。参考までに、具体的な内容は次のとおりです。効果...

Vue + OpenLayers クイックスタートチュートリアル

Openlayers は、WebGIS クライアント向けのモジュール式で高性能かつ機能豊富な Jav...