ApsaraDB for Redis は hz パラメーターを使用してバックグラウンドタスクの頻度を指定します。 hz パラメーターを変更すると、期限切れのキーを削除したり、タイムアウトしたクライアント接続を閉じるためのバックグラウンドタスクを実行する頻度を変更できます。
バックグラウンドタスクと hz パラメーターの関係
ApsaraDB for Redis は、内部関数を呼び出してバックグラウンドタスクを実行し、リソースとサービスのステータスを定期的に確認し、指定されたポリシーに基づいて操作を実行します。 たとえば、ApsaraDB for Redis は次のバックグラウンドタスクを実行します。
- LRU (Least Recently Used) 情報を計算し、期限切れのキーを削除します。
- タイムアウトしたクライアント接続を閉じます。
- データベース内のデータのハッシュ値を再計算します。
- 永続保存のために RDB または AOF ファイルにデータをバックアップします。
- 統計を更新します。
バックグラウンドタスクは、ApsaraDB for Redis の適切な実行を保証します。 ApsaraDB for Redis は hz パラメーターを使用してバックグラウンドタスクの頻度を指定します。 このパラメーターのデフォルト値は 10 です。これは、バックグラウンドタスクが 1 秒間に 10 回実行されることを示します。
一般的なシナリオ
ApsaraDB for Redis は、バックグラウンドタスクを実行して、期限切れのキーをアクティブに削除できます。 プロセスは次のとおりです。
- ApsaraDB for Redis は、有効期限が指定されているキーの中から 20 個のキーをランダムに選択し、選択したキーの有効期限が切れているかどうかを確認します。
- 20 個のキーの中で、期限切れのキーを削除します。
- 選択したキーの 25% 以上が期限切れの場合、直ちにバックグラウンドタスクを再実行します。
期限切れのキーの数が多いまたは急増しているにもかかわらず、期限切れのキーを削除する頻度が低いと、期限切れのキーはメモリに蓄積されます。 期限切れのキーはメモリを大量に占有するので、ApsaraDB for Redis のパフォーマンスが低下する可能性があります。 この問題を解決するには、バックグラウンドタスクが頻繁に実行されるように hz パラメーターの値を増やします。
hz パラメーターの設定に関する有効な値と推奨
hz パラメーターの有効な値は 1~500 です。 hz パラメーターの値が大きいほど、バックグラウンドタスクは頻繁に実行されますが、ApsaraDB for Redis が消費する CPU も多くなります。 通常、デフォルト値の 10 で十分です。 一部のバックグラウンドタスクの頻度がビジネスニーズを満たせない場合は、値を 100 まで増やすことができます。 hz パラメーターを 100 より大きい値に設定すると、CPU 使用率が高くなりすぎる可能性があるため、推奨しません。