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 例外の解決方法

推薦する

JavaScript進捗管理の詳しい説明

目次序文質問原理テスト序文プログラムを作成するときに、読み込みの進行状況やアップロードの進行状況など...

jQueryはシンプルなポップアップウィンドウ効果を実装します

この記事では、簡単なポップアップウィンドウ効果を実現するためのjQueryの具体的なコードを参考まで...

よくある MySQL テーブル設計エラーの概要

目次間違い1: データの列が多すぎる誤解2: 共同クエリが多すぎる誤解3: ENUMの代わりにSET...

HTML コメント HTML 内のテキストコメントをマークするための記号

HTML コメント。コードの横に HTML コメントを付ける必要があることがよくあります。そうするこ...

nginx をシャットダウン/再起動/起動する方法

閉鎖サービス nginx 停止systemctl 停止 nginx起動するサービス nginx 開始...

js 加算、減算、乗算、除算の正確な計算方法のサンプルコード

序文コンピュータの数値は浮動小数点であるため、計算プロセス中に取得されるデータは通常正確ではなく、そ...

postcss-pxtorem モバイル適応の実装

コマンドを実行してプラグインpostcss-pxtoremをインストールします npm インストール...

SQLベースのクエリステートメント

目次1. 基本的なSELECT文1. 指定されたフィールドをクエリする3. エイリアスを設定する4....

シェルを使用して複数のサーバーでバッチ操作を実行する方法

目次SSHプロトコルパスワード接続プロセスsshツールssh公開鍵ログインバッチ操作複数サーバーファ...

ウェブページ(ウェブサイト)のデザインと制作に関する考えや経験の共有

まずは投稿する前に! 「I Want to Study on My Own!」に改めて感謝します。た...

win10でのmysql5.7.21解凍バージョンのインストールチュートリアル

次のように、Win10でMysqlの解凍バージョンをインストールします。環境: win10 64ビッ...

CSSアニメーションに基づくSVGボタンのサンプルコード

具体的なコードは次のとおりです。 <a href="#"> <...

HTML ドロップダウン ボックスの SELECT オプションを変更する複数の方法

フォームが送信されると、返された HTML ページが再レンダリングされ、SELECT コントロールの...

CSS3 のフィルタプロパティの使用に関する詳細な説明

最近、イントラネットポータルを修正していたときに、フィルターを使用する必要がある箇所に遭遇しました。...

表示または可視性によってHTML要素を非表示にする

場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...