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

推薦する

mysql と oracle のデフォルトのトランザクション分離レベルの説明

1. トランザクション特性(ACID) (1)原子性トランザクションに関係するプログラムによって実行...

Javascript ツリー メニュー (11 項目)

1. dhtmlxツリー dHTMLxTree は機能豊富なツリー メニュー コントロールです。豊...

MySql Installer 8.0.18 画像とテキストによるビジュアル インストール チュートリアル

目次1. MySQL 8.0.18のインストール2. 環境変数を設定する3. 接続テスト1. MyS...

Vue カプセル化に基づくプルダウン更新およびプルアップ読み込みコンポーネント

VueとネイティブJavaScriptカプセル化に基づいて、プルダウンリフレッシュとプルアップロード...

favicon.ico についていくつか注意点があります (ルートディレクトリに置くのがベストです)

任意のウェブページを開きます。例: http://www.baidu.com/ ブラウザのタブのヘッ...

MySQL のテーブル内のレコード数を制限する方法

目次1. トリガーソリューション2. パーティションテーブルソリューション3. 一般的な表領域ソリュ...

JavaScript で DOM 要素を監視する MutationObServer の詳細

1. 基本的な使い方これは MutationObserver コンストラクターを通じてインスタンス化...

CSS 完全な視差スクロール効果

1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...

CentOS 7 で grub パスワードと単一ユーザー ログインを設定するサンプル コード

Centos7 と Centos6 では、GRUB パスワードの設定手順に大きな違いがあります。これ...

さまざまな種類のMySQLインデックス

インデックスとは何ですか?インデックスは、データベース ストレージ エンジンが指定されたデータをすば...

HTML テーブル タグ チュートリアル (36): テーブル ヘッダーの背景色属性 BGCOLOR

<TH> タグは、テーブル内のヘッダーのプロパティを設定するために使用されます。以下の...

Vue3コンポーネントの開発詳細

目次1. はじめに2. コンポーネント開発1. コンポーネントの構成2. ヘッダーコンポーネントの開...

jQuery はラブエフェクトをクリックする

この記事では、jQueryのクリック時のラブエフェクトの具体的なコードを参考までに共有します。具体的...

MySQLインデックスの詳細な分析

序文インデックスの選択はオプティマイザ段階の作業であることはわかっていますが、オプティマイザは万能で...