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:
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:
Si el problema se vuelve a observar:
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.
|
#!/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)