Tair (Redis OSS-compatible) には、Pub/Subクライアントの出力バッファのサイズ制限を指定するためのclient-output-buffer-limit pubsubパラメーターが用意されています。 Pub/Subクライアント用にバッファリングするデータがサイズ制限を超えると、Tair (Redis OSS互換) はクライアントへの接続を閉じます。 これにより、バッファリングされたデータが過剰なメモリを消費するのを防ぎ、Tair (Redis OSS互換) のパフォーマンスを保証します。
出力バッファの制限
Tair (Redis OSS-compatible) は、メモリ内の出力バッファを各クライアントに割り当てます。 Tair (Redis OSS互換) は、クライアントからのリクエストを処理した後、応答データを出力バッファに一時的に保存し、クライアントに送信します。 出力バッファのデータサイズを制限しないと、出力バッファに大量のデータが蓄積されることがあります。 データは最終的に利用可能なメモリをすべて使い果たし、サービス障害をもたらす可能性があります。 この問題は、次のシナリオで発生する可能性があります。
クライアントからのコマンドに対して大量のデータを返す必要があります。
メッセージのパブリッシュが、メッセージの消費を上回る。
client-output-buffer-limit pubsubパラメーターを適切な値に設定して、Pub/Subクライアントの出力バッファーが過剰なメモリ量を消費しないようにすることができます。
手順
コンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。 次に、インスタンスを見つけて、インスタンスIDをクリックします。
左側のナビゲーションウィンドウで、パラメーター設定をクリックします。
パラメータリストで、client-output-buffer-limit pubsubパラメーターをクリックし、変更で、アクション列を作成します。
表示されるダイアログボックスで、
ハードリミット、ソフトリミット、ソフト秒の値を順番に設定し、スペースで区切ります。パラメータオプション:
hard limitは、固定制限をバイト単位で指定します。 Pub/Subクライアントの出力バッファで使用されているメモリサイズがハード制限の値に達した場合、Tairはクライアントへの接続を閉じます。soft limitとsoft secondsは、ソフト境界条件を定義するために協働する。 Pub/Subクライアントの出力バッファがソフトリミット値 (バイト単位) に達した場合、ソフト秒の期間 (秒単位) 、Tairはクライアントへの接続を閉じます。
説明ハードリミットオプションのデフォルト値は33554432バイト (または32 MB) 、ソフトリミットオプションのデフォルト値は8388608バイト (または8 MB) 、ソフト秒オプションのデフォルト値は60秒です。
OK をクリックします。
オプションを設定したら、コンソールで設定を表示できます。 redis-cliを使用してインスタンスに接続し、CONFIG GET client-output-buffer-limitコマンドを実行して設定を表示することもできます。
関連する API 操作
API 操作 | 説明 |
インスタンスの設定および操作パラメーターを照会します。 | |
インスタンスのパラメーター設定を変更します。 |