Le processus principal (GWD) a sa mémoire surveillée par vc_process_monitor, ce qui garantit qu'il ne consomme jamais plus de 75 % de la mémoire disponible. En effet, la surveillance de la mémoire système totale est effectuée avec un seuil d'avertissement de 80 % et un seuil critique de 90 %.

Vous pouvez surveiller une passerelle avec des seuils qui fournissent des états d'avertissement ou critiques qui indiquent des problèmes potentiels avant d'avoir une incidence sur les services. Le tableau suivant répertorie les valeurs de seuil et les actions recommandées.

État du seuil Valeur de seuil Action corrective recommandée
Avertissement 80 %

Si la mémoire dépasse le seuil d'avertissement :

  • Collectez le bundle de diagnostics de la passerelle.
  • Vérifier l'utilisation de la mémoire par processus

Poursuivez la surveillance active et vérifiez l'augmentation éventuelle de l'utilisation.

Critique 90 %

Si la mémoire dépasse le seuil critique :

  • Surveillez un abandon éventuel critique de paquets qui peut indiquer une surcapacité.

Si le problème persiste :

  • Si une surcapacité est observée pendant un intervalle de 5 minutes, ajoutez de la capacité de la passerelle et rééquilibrez-la pour éviter une incidence sur le service lié à la capacité.
Note : Avant de rééquilibrer la passerelle, vérifiez que les mesures de capacité se situent dans la limite recommandée. Pour plus d'informations sur les mesures de capacité, reportez-vous à la section Capacité des composants de passerelle.
Voici un exemple de script Python pour la surveillance de l'utilisation de la mémoire :
Note : Vous pouvez également utiliser Telegraf pour surveiller l'utilisation de la mémoire. Pour plus d'informations, reportez-vous à la section Surveiller les passerelles à l'aide de Telegraf.
#!/usr/bin/env python

from optparse import OptionParser
import sys

# Parse commandline options:
parser = OptionParser(usage="%prog -w <warning threshold>% -c <critical threshold>% [ -h ]")
parser.add_option("-w", "--warning",
    action="store", type="string", dest="warn_threshold", help="Warning threshold in absolute(MB) or percentage")
parser.add_option("-c", "--critical",
    action="store", type="string", dest="crit_threshold", help="Critical threshold in ansolute(MB) or percentage")
(options, args) = parser.parse_args()

def read_meminfo():
    meminfo = {}
    for line in open('/proc/meminfo'):
        if not line: continue
        (name, value) = line.split()[0:2]
        meminfo[name.strip().rstrip(':')] = int(value)
    return meminfo

if __name__ == '__main__':
    if not options.crit_threshold:
        print "UNKNOWN: Missing critical threshold value."
        sys.exit(3)
    if not options.warn_threshold:
        print "UNKNOWN: Missing warning threshold value."
        sys.exit(3)

    is_warn_pct = options.warn_threshold.endswith('%')
    if is_warn_pct:
       warn_threshold = int(options.warn_threshold[0:-1])
    else:
       warn_threshold = int(options.warn_threshold)

    is_crit_pct = options.crit_threshold.endswith('%')
    if is_crit_pct:
       crit_threshold = int(options.crit_threshold[0:-1])
    else:
       crit_threshold = int(options.crit_threshold)

    if crit_threshold >= warn_threshold:
        print "UNKNOWN: Critical percentage can't be equal to or bigger than warning percentage."
        sys.exit(3)
    
    meminfo = read_meminfo()
    memTotal = meminfo["MemTotal"]
    memFree = meminfo["MemFree"] + meminfo["Buffers"] + meminfo["Cached"]
    memFreePct = 100.0*memFree/memTotal
    if (is_crit_pct and memFreePct <= crit_threshold) or (not is_crit_pct and memFree/1024<=crit_threshold):
        print "CRITICAL: Free memory is at %2.0f %% ( %d MB free our of %d MB total)" % (memFreePct, memFree/1024, memTotal/1024)
        sys.exit(2)
    if (is_warn_pct and memFreePct <= warn_threshold) or (not is_warn_pct and memFree/1024<=warn_threshold):
        print "WARNING: Free memory is at %2.0f %% ( %d MB free our of %d MB total)" % (memFreePct, memFree/1024, memTotal/1024)
        sys.exit(1)
    else:
        print "OK: Free memory is at %2.0f %% ( %d MB free our of %d MB total)" % (memFreePct, memFree/1024, memTotal/1024)
        sys.exit(0)