サーバーのチューニング

目次

OSの最適化

デフォルトのSHMディレクトリ

接続のチューニング

最大接続数 | 最大SSL接続数 | コネクションタイムアウト(秒) | 最大キープアライブ要求 | キープアライブタイムアウト(秒) | 送信バッファサイズ(バイト) | 受信バッファサイズ(バイト)

要求/応答のチューニング

最大リクエストURLの長さ(バイト) | 最大要求ヘッダーサイズ(バイト) | 最大リクエストボディサイズ(バイト) | 最大動的応答ヘッダーサイズ(バイト) | 最大動的応答ボディサイズ(バイト)

静的ファイル配信の最適化

最大キャッシュサイズの小さいファイルサイズ(バイト) | 小ファイルキャッシュサイズ合計(バイト) | 最大MMAPファイルサイズ(バイト) | MMAPキャッシュサイズ合計(バイト) | sendfile()を使用する | ファイルETag

GZIP圧縮チューニング

圧縮を有効にする | 圧縮可能なタイプ | 動的圧縮を有効にする | 圧縮レベル(動的コンテンツ) | Brotli Compression Level (Dynamic Content) | 静的ファイルの自動更新 | 圧縮レベル(静的コンテンツ) | Brotli Compression Level (Static File) | 静的GZIPキャッシュディレクトリ | 最大静的ファイルサイズ(バイト) | 最小静的ファイルサイズ(バイト)

SSLグローバル設定

Default Cipher Suite | SSL Strong DH Key | 複数のSSL証明書を有効にする | セッションキャッシュを有効にする | セッションキャッシュサイズ(バイト) | セッションキャッシュタイムアウト(秒) | セッションチケットを有効にする | SSLセッションチケットの有効期間(秒) | SSLセッションチケットキーファイル

QUIC

Enable QUIC | QUIC SHM Directory | QUIC Versions | Congestion Control | Connection Flow Control Window | Max Connection Flow Control Window | Stream Flow Control Window | Max Stream Flow Control Window | Max Concurrent Streams Per Connection | Handshake Timeout | Idle Timeout | Enable DPLPMTUD | PLPMTU Base Value | PLPMTU Max Value

デフォルトのSHMディレクトリ

説明

共有メモリのデフォルトディレクトリを指定されたパスに変更します。 ディレクトリが存在しない場合は作成されます。 特に指定のない限り、すべてのSHMデータはこのディレクトリに保存されます。

構文

パス

最大接続数

説明

サーバーが受け入れることができる同時接続の最大数を指定します。 これには、プレーンTCP接続とSSL接続の両方が含まれます。 最大同時接続制限に達すると、サーバーはアクティブな要求が完了するとキープアライブ接続を閉じます。

構文

整数

ヒント

サーバーが "root"ユーザーによって起動されると、サーバーはプロセスごとのファイル記述子の制限を自動的に調整しようとしますが、失敗した場合は手動でこの制限を増やす必要があります。

最大SSL接続数

説明

サーバーが受け入れる同時SSL接続の最大数を指定します。 同時SSL接続と非SSL接続の合計が最大接続数で指定された制限を超えることはできないため、許可される同時SSL接続の実際の数はこの制限より小さくなければなりません。

構文

整数

コネクションタイムアウト(秒)

説明

1つの要求の処理中に許容される最大接続アイドル時間を指定します。 この時間の間、接続がアイドル状態の場合、つまりI/Oアクティビティがない場合は、接続が閉じられます。

構文

整数

ヒント

[セキュリティ]潜在的なDoS攻撃の間に不在接続を回復するのに役立つように、この値を低く設定します。

参照

キープアライブタイムアウト(秒)

最大キープアライブ要求

説明

キープアライブ(永続的)セッションを介して処理できる要求の最大数を指定します。 この制限に達すると接続は終了します。 バーチャルホストごとにこの制限を設定することもできます。

構文

整数

ヒント

[パフォーマンス]適度に高い値に設定します。 "1"または "0"の値はキープアライブを無効にします。

参照

Virtual Host 最大キープアライブ要求

キープアライブタイムアウト(秒)

説明

キープアライブ接続からの要求間の最大アイドル時間を指定します。 この期間中に新しい要求が受信されない場合、接続は閉じられます。 この設定は、HTTP/1.1接続にのみ適用されます。 HTTP/2接続は、設計によって長いキープアライブタイムアウトを持ち、この設定の影響を受けません。

構文

整数

ヒント

[セキュリティ & パフォーマンス]ロードする必要がある単一のページで参照されるアセットが多くある場合、クライアントからの後続のリクエストを待機するのに十分な時間だけこの値を設定することをお勧めします。 キープアライブ接続で次のページが配信されることを期待して、これを長く設定しないでください。 多くのアイドル状態のキープアライブ接続を維持することはサーバーリソースの浪費であり、(D)DoS攻撃によって活用される可能性があります。 2-5秒はほとんどのアプリケーションにとって妥当な範囲です。 LiteSpeedは非キープアライブ環境で非常に効率的です。

送信バッファサイズ(バイト)

説明

各TCPソケットの送信バッファサイズ。 512Kは許容されるバッファの最大サイズです。

構文

整数

ヒント

[パフォーマンス]オペレーティングシステムのデフォルトのバッファサイズを使用するには、この値を "未設定"のままにするか、0に設定することをお勧めします。
[パフォーマンス] Webサイトで大きな静的ファイルが使用されている場合は、送信バッファサイズを大きくしてパフォーマンスを向上させてください。
[パフォーマンス]これを低い値に設定すると、ソケットあたりのスループットとメモリ使用量が減少し、メモリがボトルネックになった場合にサーバーがより多くの同時ソケットを持つことが可能になります。

受信バッファサイズ(バイト)

説明

各TCPソケットの受信バッファーサイズ。 512Kは許容されるバッファの最大サイズです。

構文

整数

ヒント

[パフォーマンス]オペレーティングシステムのデフォルトのバッファサイズを使用するには、この値を "未設定"のままにするか、0に設定することをお勧めします。
[パフォーマンス]大きい受信バッファは、大きなペイロード、すなわちファイルアップロードで着信要求を処理するときのパフォーマンスを向上させます。
[パフォーマンス]これを低い値に設定すると、ソケットあたりのスループットとメモリ使用量が減少し、メモリがボトルネックになった場合にサーバーがより多くの同時ソケットを持つことが可能になります。

最大リクエストURLの長さ(バイト)

説明

リクエストURLの最大サイズを指定します。 URLは、クエリ文字列を含むサーバーリソースへのアクセスに使用されるフルテキストアドレスです。 8192バイトがハードリミットです。

構文

整数

ヒント

[セキュリティとパフォーマンス]メモリ使用量を減らし、偽のリクエストとDoS攻撃を特定するのに役立つよう、適度に低く設定します。
HTTP GETメソッドがPOSTの代わりに大きなクエリ文字列とともに使用されていない限り、2-3KはほとんどのWebサイトにとって十分です。

最大要求ヘッダーサイズ(バイト)

説明

要求URLを含むHTTP要求ヘッダーの最大サイズを指定します。 ハード制限は16380バイトです。

構文

整数

ヒント

[セキュリティとパフォーマンス]メモリ使用量を減らし、偽のリクエストとDoS攻撃を特定するのに役立つよう、適度に低く設定します。
4-8Kは、ほとんどのWebサイトで十分です。

最大リクエストボディサイズ(バイト)

説明

HTTPリクエスト本文の最大サイズを指定します。 32ビットOSの場合、2GBはハード制限です。 64ビットOSの場合、実質的に無制限です。

構文

整数

ヒント

[セキュリティ] DoS攻撃を防ぐには、この制限を実際に必要なものだけに制限してください。 スワッピング空間には、この制限に対応するための十分な空き領域が必要です。

最大動的応答ヘッダーサイズ(バイト)

説明

動的に生成される応答の最大ヘッダーサイズを指定します。 ハードリミットは8KBです。

構文

整数

ヒント

[信頼性 & パフォーマンス]適度に低く設定すると、外部アプリケーションによって動的に生成された不正な応答を認識するのに役立ちます。

最大動的応答ボディサイズ(バイト)

説明

動的に生成される応答の最大ボディサイズを指定します。 ハードリミットは2047MBです。

構文

整数

ヒント

[信頼性 & パフォーマンス]不適切なレスポンスを識別するのに役立ちます。 不正なスクリプトに無限ループが含まれて無限大の応答が生じることは珍しいことではありません。

最大キャッシュサイズの小さいファイルサイズ(バイト)

説明

事前に割り当てられたメモリバッファにキャッシュされる最大の静的ファイルを指定します。 静的ファイルは、メモリバッファキャッシュ、メモリマップキャッシュ、プレーンリード/ライト、およびsendfile()の4つの方法で提供できます。 サイズがこの設定より小さいファイルはメモリバッファキャッシュから提供されます。 サイズがこの設定より大きく、最大MMAPファイルサイズ(バイト)より小さいファイルは、メモリマップドキャッシュから処理されます。 最大MMAPファイルサイズ(バイト)より大きいサイズのファイルは、プレーン・リード/ライトまたはsendfile()を介して処理されます。 メモリバッファキャッシュから4Kより小さい静的ファイルを提供することが最適です。

構文

整数

小ファイルキャッシュサイズ合計(バイト)

説明

小さな静的ファイルをキャッシュ/提供するためにバッファーキャッシュに割り振ることができる合計メモリーを指定します。

構文

整数

最大MMAPファイルサイズ(バイト)

説明

メモリマップされる最大の静的ファイル(MMAP)を指定します。   静的ファイルは、メモリバッファキャッシュ、メモリマップキャッシュ、プレーンリード/ライト、およびsendfile()の4つの方法で提供できます。 サイズが最大キャッシュサイズの小さいファイルサイズ(バイト)より小さいファイルはメモリバッファキャッシュから提供されます。 サイズが最大キャッシュサイズの小さいファイルサイズ(バイト)よりも大きいが最大MAPファイルサイズより小さいファイルは、メモリマップドキャッシュから提供されます。 最大MMAPファイルサイズよりも大きいファイルは、プレーンな読み取り/書き込みまたはsendfile()を介して提供されます。 サーバは32ビットのアドレス空間(2GB)を持っているので、非常に大きなファイルをメモリに格納することは推奨されません。

構文

整数

MMAPキャッシュサイズ合計(バイト)

説明

中規模の静的ファイルをキャッシュ/配信するためにメモリマップされたキャッシュに割り当てることができる合計メモリを指定します。

構文

整数

sendfile()を使用する

説明

静的ファイルを提供するためにsendfile()システムコールを使用するかどうかを指定します。 静的ファイルは、メモリバッファキャッシュ、メモリマップキャッシュ、プレーンリード/ライト、およびsendfile()の4つの方法で提供できます。 最大キャッシュサイズの小さいファイルサイズ(バイト)より小さいファイルはメモリバッファキャッシュから提供されます。 最大キャッシュサイズの小さいファイルサイズ(バイト)より大きいが、最大MMAPファイルサイズ(バイト)より小さいファイルは、メモリマップドキャッシュから提供されます。 最大MMAPファイルサイズ(バイト)より大きいファイルは、プレーンな読み取り/書き込みまたはsendfile()で処理されます。 Sendfile()は、非常に大きな静的ファイルを処理するときにCPU使用率を大幅に下げることができる「ゼロコピー」システムコールです。 Sendfile()は最適化されたネットワークカードカーネルドライバを必要とするため、一部の小規模ベンダーのネットワークアダプタには適していない可能性があります。

構文

ラジオボックスから選択

ファイルETag

説明

ファイルのinode、last-modified time、およびsize属性を使用するかどうかを指定します。 静的ファイル用のETag HTTP応答ヘッダーを生成します。 3つの属性はすべてデフォルトで有効になっています。 ミラー化されたサーバーから同じファイルを提供する予定の場合は、iノードを含めないでください。 それ以外の場合、1つのファイルに対して生成されるETagは、異なるサーバーで異なります。

構文

チェックボックスから選択

圧縮を有効にする

説明

静的HTTP応答と動的HTTP応答の両方のGZIP圧縮を制御します。

構文

ラジオボックスから選択

ヒント

[パフォーマンス]ネットワーク帯域幅を節約するために有効にします。 html、css、およびjavascriptファイルなどのテキストベースの応答が最大の利益をもたらし、平均で元のサイズの半分に圧縮できます。

圧縮可能なタイプ

説明

圧縮できるMIMEタイプを指定します。

構文

MIMEタイプのリストをカンマで区切って指定します。 ワイルドカード "*"と否定記号 "!" はtext/*、!text/jsなどで許可されています。

text/cssではないtext/*を圧縮する場合は、次のようなルールを設定できます。 text/*, !text/css. "!"はそのMIMEタイプを除外します。

ヒント

[パフォーマンス] GZIP圧縮の恩恵を受けるタイプのみを許可します。 gif / png / jpegイメージやフラッシュファイルなどのバイナリファイルは、圧縮の恩恵を受けません。

動的圧縮を有効にする

説明

動的に生成されるHTTPレスポンスのGZIP圧縮を制御します。 動的なGZIP圧縮を有効にするには、圧縮を有効にするはいに設定する必要があります。

構文

ラジオボックスから選択

ヒント

[パフォーマンス]動的応答を圧縮すると、CPUとメモリの使用率は向上しますが、ネットワーク帯域幅は節約されます。

圧縮レベル(動的コンテンツ)

説明

動的コンテンツの圧縮レベルを指定します。 1(最低)から9(最高)までの範囲です。 デフォルトは2です。

構文

1と9の間の数字。

ヒント

[パフォーマンス]高い圧縮レベルは、より多くのメモリとCPUサイクルを使用します。 マシンに追加の電源がある場合は、それをより高いレベルに設定することができます。 6と9の間に大きな違いはありませんが、9ではCPUサイクルが多く使用されます。

Brotli Compression Level (Dynamic Content)

説明

Controls the level of Brotli compression applied to dynamic responses. Ranges from 0 (OFF) to 6 (highest).

This setting will only take effect when 圧縮を有効にする is enabled.

Default value: 2

構文

Number between 0 and 6.

静的ファイルの自動更新

説明

Sサーバが圧縮可能な静的ファイルのGZIP圧縮バージョンを自動的に作成/更新するかどうかを指定します。 圧縮可能なタイプにリストされているMIMEタイプのファイルが要求されたときにはいに設定されている場合、サーバーは圧縮ファイルのタイムスタンプに応じてファイルの対応する圧縮バージョンを作成または更新できます。 この圧縮ファイルは、静的GZIPキャッシュディレクトリの下に作成されます。 ファイル名は元のファイルのパスのMD5ハッシュに基づいています。

構文

ラジオボックスから選択

圧縮レベル(静的コンテンツ)

説明

静的コンテンツの圧縮レベルを指定します。 1(最低)から9(最高)までの範囲です。 デフォルトは6です。

構文

1から9の間の数字。

Brotli Compression Level (Static File)

説明

Specifies the level of Brotli compression applied to static files. Ranges from 1 (lowest) to 11 (highest).

This setting will only take effect when 圧縮を有効にする and 静的ファイルの自動更新 are enabled.

Default value: 5

構文

Number between 1 and 11.

ヒント

Save network bandwidth. Text-based responses such as html, css, and javascript files benefit the most and on average can be compressed to half of their original size.

静的GZIPキャッシュディレクトリ

説明

静的コンテンツ用の圧縮ファイルの格納に使用されるディレクトリのパスを指定します。 デフォルトはスワップディレクトリです。

構文

ディレクトリパス

最大静的ファイルサイズ(バイト)

説明

静的ファイルの最大サイズを指定します。 サーバーは自動的に圧縮ファイルを作成します。

構文

1K以上のバイト数

ヒント

[パフォーマンス]大規模なファイルに対してサーバーが圧縮ファイルを作成/更新することはお勧めできません。 圧縮は、サーバープロセス全体をブロックし、圧縮が完了するまで、それ以上の要求は処理できません。

最小静的ファイルサイズ(バイト)

説明

静的ファイルの最小サイズを指定します。 サーバーは対応する圧縮ファイルを作成します。

構文

バイト数は200より小さくない。

ヒント

帯域幅の節約はごくわずかなため、非常に小さいファイルを圧縮する必要はありません。

Default Cipher Suite

説明

Default cipher suite for SSL certificates.

Default value: Server Internal Default (Based on current best practices)

構文

Colon-separated string of cipher specifications.

SSL Strong DH Key

説明

Specifies whether to use 2048 or 1024 bit DH keys for SSL handshakes. If set to "Yes", 2048 bit DH keys will be used for 2048 bit SSL keys and certificates. 1024 bit DH keys will still be used in other situations. Default is "Yes".

Earlier versions of Java do not support DH key size higher than 1024 bits. If Java client compatibility is required, this should be set to "No".

構文

radio

複数のSSL証明書を有効にする

説明

リスナー/バーチャルホストが複数のSSL証明書を設定できるようにします。 複数の証明書が有効な場合、証明書/キーは命名規則に従うことが想定されます。 証明書の名前がserver.crtの場合、その他の可能な証明書名はserver.crt.rsa、server.crt.dsa、server.crt.eccです。 「未設定」の場合、デフォルトは「いいえ」です。

構文

ラジオボックスから選択

セッションキャッシュを有効にする

説明

セッションIDキャッシングを有効にします。 「未設定」の場合、デフォルトは「いいえ」です。 (Opensslデフォルト)

構文

ラジオボックスから選択

セッションキャッシュサイズ(バイト)

説明

キャッシュに格納するSSLセッションIDの最大数を設定します。 デフォルトは1,000,000です。

構文

整数

セッションキャッシュタイムアウト(秒)

説明

この値は、再ネゴシエーションが必要な前にセッションIDがキャッシュ内で有効である期間を決定します。 デフォルトは3,600です。

構文

整数

セッションチケットを有効にする

説明

セッションチケットを有効にします。 「未設定」の場合、サーバーはopenSSLのデフォルトチケットを使用します。

構文

ラジオボックスから選択

SSLセッションチケットの有効期間(秒)

説明

この値は、再ネゴシエーションが必要となる前にセッションチケットが有効になる期間を決定します。 デフォルトは3,600です。

構文

整数

SSLセッションチケットキーファイル

説明

SSLチケットキーを管理者が作成または維持できるようにします。 ファイルの長さは48バイトでなければなりません。 このオプションを空のままにすると、ロードバランサは独自のキーセットを生成してローテーションします。

重要:転送秘密を維持するには、 SSLセッションチケットの有効期間秒単位でキーを変更することを強くお勧めします。 これができない場合は、このフィールドを空のままにすることをお勧めします。

構文

パス

Enable QUIC

説明

Enables the QUIC network protocol server wide. Default value is Yes.

構文

ラジオボックスから選択

ヒント

When this setting is set to Yes, QUIC can still be disabled at the listener level through the Allow QUIC setting, or at the virtual host level through the Enable QUIC setting.

QUIC SHM Directory

説明

Specifies the directory used to save QUIC data to shared memory.

By default, the server's default SHM directory, /dev/shm, will be used.

構文

Path

ヒント

A RAM based partition, such as /dev/shm, is recommended.

QUIC Versions

説明

A list of enabled QUIC versions. This setting should only be used to limit QUIC support to the versions listed and is best left blank.

構文

Comma-separated list

Q035, Q039

ヒント

It is recommended to leave this setting blank to have the the best configuration applied automatically.

Congestion Control

説明

The congestion control algorithm used. This can be set manually or left up to the QUIC library in use by selecting the "Default" option.

Default value: Default

構文

ドロップダウンリストから選択

Connection Flow Control Window

説明

The initial size of the buffer allocated for a QUIC connection. Default value is 1.5M.

構文

Number between 64K and 512M

ヒント

A larger window size will use more memory.

Max Connection Flow Control Window

説明

Specifies the maximum size that a connection flow control window buffer is allowed to reach due to window auto-tuning.

Default value is 0, which means that the value of Connection Flow Control Window is used and no auto-tuning is performed.

構文

0 or a number between 64K and 512M

ヒント

A larger window size will use more memory.

Stream Flow Control Window

説明

The initial amount of data a QUIC connection is willing to receive per stream. Default value is 1M.

構文

Number between 64K and 128M

ヒント

A larger window size will use more memory.

Max Stream Flow Control Window

説明

Specifies the maximum size that a stream flow control window is allowed to reach due to window auto-tuning.

Default value is 0, which means that the value of Stream Flow Control Window is used and no auto-tuning is performed.

構文

0 or a number between 64K and 128M

ヒント

A larger window size will use more memory.

Max Concurrent Streams Per Connection

説明

The maximum number of concurrent streams allowed per QUIC connection. Default value is 100.

構文

Integer number between 10 and 1000

Handshake Timeout

説明

The time in seconds a new QUIC connection is given to complete its handshake, after which the connection is aborted. Default value is 10.

構文

Integer number between 1 and 15

Idle Timeout

説明

The time in seconds after which an idle QUIC connection will be closed. Default value is 30.

構文

Integer number between 10 and 30

Enable DPLPMTUD

説明

Enable Datagram Packetization Layer Path Maximum Transmission Unit Discovery (DPLPMTUD).

Background on DPLPMTUD (RFC 8899)

Default value: Yes

構文

ラジオボックスから選択

PLPMTU Base Value

説明

The maximum value of PLPMTU (maximum packet size without headers) in bytes that QUIC will use by default. Setting this to 0 will allow QUIC to pick the size.

This setting should be set lower than PLPMTU Max Value.

Default value: 0

構文

0 or integer number between 1200 and 65527

PLPMTU Max Value

説明

The PLPMTU (maximum packet size without headers) probe upper limit in bytes. This setting is used to limit the "maximum packet size" in the DPLPMTUD search space. Setting this to 0 will allow QUIC to pick the size (By default LSQUIC assumes that MTU is 1,500 bytes (Ethernet)).

This setting should be set higher than PLPMTU Base Value.
Default value: 0

構文

0 or integer number between 1200 and 65527