私は今日、CockroachDB プロセスを開始しましたが、使用していないにもかかわらず、そのメモリ使用量がバックグラウンドで増加し続けています。どうしたの?成長を止める方法はありますか?
1 に答える
CockroachDB ノードを起動し、数時間または数日間実行した場合、コンピューターの総メモリの約 25% で横ばいになる前に、メモリ使用量がしばらくの間着実に増加することは予想外ではありません。これには 2 つの要因があります。
CockroachDB は、管理 UIのグラフを強化するために、内部の時系列モニタリング データをそれ自体に保存します。これは、システムにトラフィックを送信していなくても、定期的にデータが書き込まれていることを意味します。
ほとんどのデータベースと同様に、CockroachDB は最近アクセスされたデータをメモリにキャッシュして、より高速な読み取りを提供できるようにします。時系列の書き込みはこれに含まれるため、時系列データは、システムが構成されたメモリ制限に達するまでメモリに蓄積されます。
キャッシュ サイズの制限はデフォルトでマシンのメモリの 25% ですが、ゴキブリの開始時に --cache フラグを設定することで制御できます。たとえば、cockroach start --cache=512MiB を実行して、キャッシュ サイズを 2^29 バイトに制限できます。
管理 UI をまったく気にしない場合はCOCKROACH_METRICS_SAMPLE_INTERVAL
、CockroachDB プロセスを開始する前に環境変数を設定して、時系列データがサンプリングされる頻度を減らすことも選択できます。COCKROACH_METRICS_SAMPLE_INTERVAL=1m
デフォルトでは 10 秒ごとにサンプリングするため、書き込みデータ量を 6 分の 1 に減らすように設定できます。