サーバースレッド数最適化

  • 作成者:ayuan0625
  • 編集回数:14次
  • 最終更新:ayuan0625 于 2021-09-28
  • 一.サーバのスレッドとは

    一般的に、サーバは大量のアクセス数に耐えられること、各ユーザからのリクエストへの同時応答と、受け付けられた各リクエストをサーバでスレッドを通して処理することが求められています。そのスレッド数を実情に合わせて制御できれば、過酷なネット環境に置かれてもサーバはより高い安定性と堅牢性を保てるようになります。

    各Webサーバのスレッド制御に当たって主に次のパラメータを使用することになります。

    ·  最小スレッド数:サーバが常にオープンを保つスレッドの最小数を指します。

    ·  最大スレッド数:サーバが並行処理できるタスクの最大数を指します。この上限を超えると、リクエストが待ち状態に入り、利用可能な空きスレッドを待つことになります。

    ·  最大待ち時間:サーバの同時使用しているスレッド数が最大スレッド数を超えると、リクエストが待ち状態に入ります。最大待ち時間が経過しても同リクエストが処理されていない場合、サーバはこのリクエストを拒否し、「Connection refused(接続拒否)」エラーを返すことになります。

    二.サーバのスレッド数の設定方法

    普通では、サーバ操作に当たり、計算処理(CPUが主な担当)、アイドル(I/O入出力、データベースを待つ)の状態に大分けできます。そのうち、一番重要なパラメータとして最大スレッド数が挙げられます。

    1.極端に言えば、単純に計算を行う場合、システムの応答時間は主にCPUの計算能力によって制限されます。CPUに同時に割り当てられるスレッド数を減らすために、最大スレッド数をできるだけ小さく設定すべきです。それにより、計算効率及びシステム全般の処理能力を高めることが期待できます。

    2.また、単純にI/Oやデータベースの関連操作を行う場合、応答時間は主に外部リソースの応答待ちによって制限されるため、最大スレッド数をできるだけ大きく設定することが求められます。それにより、同時処理できるリクエストの数が増えるため、システム全体の処理能力が高まります。この場合、Tomcatが同時に処理するリクエストの量が比較的多いため、Tomcatの仮想マシンのメモリ設定や、Linux システムにおけるopen file(ファイル読み込み)の制限を確認する必要があります。

    しかし、実際の操作に上述の二項目(計算処理とアイドル)を同時に考慮する必要があり、最大スレッド数は実情に合わせて設定しなければなりません。それで、最適な値がないと考えられます。

    そのため、テストの上に、調整や最適化を繰り返し、最も適切な設定値を見つけ出すことは、一番おすすめのやり方となります。

    インデックス:Tomcatサーバの同時実行数に関する確認と変更

    Attachment List


    Theme: FineReport システム性能最適化
    既に最初
    既に最後
    • Helpful
    • Not helpful
    • Only read