El proceso principal (gwd) tiene su memoria supervisada por vc_process_monitor, lo cual garantiza que nunca consuma más del 75 % de la memoria disponible. Como resultado, la supervisión de la memoria total del sistema se realiza con un umbral de advertencia del 80 % y un umbral crítico del 90 %.

Es posible supervisar una puerta de enlace con umbrales que proporcionan estados críticos o de advertencia que evidencian posibles problemas antes de que afecten a los servicios. En la siguiente tabla se enumeran los valores de umbral y las acciones recomendadas.

Estado de umbral Valor de umbral Acción correctiva recomendada
Advertencia 80 %

Si la memoria supera el umbral de advertencia:

  • Recopilar paquete de diagnóstico de puerta de enlace.
  • Comprobar el uso de memoria por proceso

Continúe con la supervisión de forma activa y compruebe el uso creciente.

Crítico 90 %

Si la memoria cruza el umbral crítico:

  • Supervíselo para detectar posibles descartes de paquetes críticos que pueden indicar un exceso de capacidad.

Si el problema se vuelve a observar:

  • Si se observa un exceso de capacidad durante un intervalo de 5 minutos, agregue capacidad de puerta de enlace y vuelva a equilibrarlo para evitar que el servicio relacionado con la capacidad se vea afectado.
Nota: Antes de volver a equilibrar la puerta de enlace, confirme que las métricas de capacidad estén dentro del límite recomendado. Para obtener más información sobre las métricas de capacidad, consulte Capacidad de los componentes de puerta de enlace.
A continuación se muestra un ejemplo de script de Python para supervisar el uso de memoria:
Nota: También puede utilizar Telegraf para supervisar el uso de memoria. Para obtener más información, consulte Supervisar puertas de enlace con 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)