2017-05-25 2 views

Répondre

3

Si vous démarrez un nœud CockroachDB et le laissez tourner pendant des heures ou des jours, il n'est pas surprenant que son utilisation de la mémoire augmente régulièrement pendant un certain temps avant de plafonner à environ 25% de la mémoire totale de l'ordinateur. Il y a deux facteurs qui jouent dans ce:

  1. stocke CockroachDB de données de surveillance des timeseries internes en lui-même afin d'alimenter les graphiques dans son admin UI. Cela signifie que les données sont écrites périodiquement même si vous n'envoyez pas de trafic au système.

  2. Comme la plupart des bases de données, CockroachDB met en cache les données les plus récemment accédées dans la mémoire afin de permettre des lectures plus rapides. Les écritures de timeseries y sont incluses, de sorte que les données de timesérie s'accumulent en mémoire jusqu'à ce que le système atteigne la limite de mémoire configurée.

Les valeurs par défaut de limite de taille du cache à 25% de la mémoire de la machine, mais peut être contrôlé en réglant le drapeau --cache lors de l'exécution début de cafard. Par exemple, vous pouvez lancer le lancement de cafard --cache = 512MiB pour limiter la taille du cache à 2^29 octets. Si vous ne vous souciez pas du tout de l'interface d'administration, vous pouvez également choisir de diminuer la fréquence d'échantillonnage des données de timeseries en définissant la variable d'environnement COCKROACH_METRICS_SAMPLE_INTERVAL avant de démarrer le processus CockroachDB. Il est par défaut d'échantillonnage toutes les 10 secondes, de sorte que vous pouvez le définir à COCKROACH_METRICS_SAMPLE_INTERVAL=1m pour réduire la quantité de données écrites par 6x.