Monitor Memory Usage on a Router

Purpose

From a management station that has access to the router, you can monitor memory usage of components, applications, and associated elements that have run or are currently running on a router.

From a management station that has access to the router and using a tool, such as Snmpwalk, follow these steps:

  1. Check Memory Utilization on Chassis Components
  2. Check Memory Utilization per Process

Check Memory Utilization on Chassis Components

Purpose

The enterprise-specific chassis MIB provides information about the router and its components. Within the chassis MIB, the jnxMIBs branch contains one main subbranch, jnxBoxAnatomy, which in turn contains a section, jnxOperatingTable. Within jnxOperatingTable, you can use the jnxOperatingBuffer object to monitor memory usage on your router. (See Figure 18.)

Figure 18: Chassis MIB Tree

Chassis MIB Tree

After each object description is a value in parenthesis, such as (1). This value can be used to enter an OID for the specific object. For example, to gather information on memory utilization, you can type the object description (jnxOperatingBuffer) or the OID (.1.3.6.1.4.1.2636.3.1.13.1.11).

Action

To check memory utilization using the Juniper Networks enterprise chassis MIB, from a management station that has access to the router, and using a tool such as Snmpwalk, enter the following commands:

user-bsd# snmpwalk [common arguments] hostname community object-id user@host> show chassis routing-engine

Sample Output

user-nms %  snmpwalk -Os -M /volume/~/mibs -m all tp1 public jnxOperatingBuffer
jnxOperatingBufferjnxOperatingBuffer.1.1.1.0 = Gauge32: 0
jnxOperatingBuffer.1.1.2.0 = Gauge32: 0
jnxOperatingBuffer.1.1.3.0 = Gauge32: 0
jnxOperatingBuffer.2.1.0.0 = Gauge32: 0
jnxOperatingBuffer.4.1.1.0 = Gauge32: 0
jnxOperatingBuffer.4.1.2.0 = Gauge32: 0
jnxOperatingBuffer.4.1.3.0 = Gauge32: 0
jnxOperatingBuffer.4.1.4.0 = Gauge32: 0
jnxOperatingBuffer.6.1.1.0 = Gauge32: 6
jnxOperatingBuffer.6.1.2.0 = Gauge32: 6
jnxOperatingBuffer.7.1.0.0 = Gauge32: 8
jnxOperatingBuffer.7.2.0.0 = Gauge32: 8
jnxOperatingBuffer.8.1.1.0 = Gauge32: 0
jnxOperatingBuffer.8.2.3.0 = Gauge32: 0
jnxOperatingBuffer.8.2.4.0 = Gauge32: 0
jnxOperatingBuffer.9.1.0.0 = Gauge32: 28
jnxOperatingBuffer.9.1.1.0 = Gauge32: 0

user-nms % snmpwalk -Os -M /volume/~/mibs -m all tp1 public jnxOperatingDescr
jnxOperatingDescr.1.1.1.0 = midplane
jnxOperatingDescr.1.1.2.0 = midplane
jnxOperatingDescr.1.1.3.0 = midplane
jnxOperatingDescr.2.1.0.0 = Power Supply A
jnxOperatingDescr.4.1.1.0 = Left Tray front fan
jnxOperatingDescr.4.1.2.0 = Left Tray second fan
jnxOperatingDescr.4.1.3.0 = Left Tray third fan
jnxOperatingDescr.4.1.4.0 = Left Tray fourth fan
jnxOperatingDescr.6.1.1.0 = CFEB Internet Processor IIv1
jnxOperatingDescr.6.1.2.0 = CFEB Internet Processor IIv1
jnxOperatingDescr.7.1.0.0 = FPC @ 0/*/*
jnxOperatingDescr.7.2.0.0 = FPC @ 1/*/*
jnxOperatingDescr.8.1.1.0 = PIC: 4x OC-3 SONET, MM @ 0/0/*
jnxOperatingDescr.8.2.3.0 = PIC: 1x Tunnel @ 1/2/*
jnxOperatingDescr.8.2.4.0 = PIC: 1x G/E, 1000 BASE-SX @ 1/3/*
jnxOperatingDescr.9.1.0.0 = Routing Engine
jnxOperatingDescr.9.1.1.0 = Routing Engine PCMCIA Card

user@R1> show chassis routing-engine 
Routing Engine status:
    Temperature                 28 degrees C / 82 degrees F
    DRAM                       256 MB
    Memory utilization          28 percent
    CPU utilization:
      User                       0 percent
      Background                 0 percent
      Kernel                     6 percent
      Interrupt                  0 percent
      Idle                      94 percent
    Model                          RE-5.0
    Serial ID                      1000431687
    Start time                     2003-11-20 11:42:04 PST
    Uptime                         63 days, 2 hours, 34 minutes, 4 seconds
    Load averages:                 1 minute   5 minute  15 minute
                                       0.01       0.02       0.01

Meaning

The sample output shows the percentage of utilization for the FPC and Routing Engine. The first object, jnxOperatingBuffer, shows that the Routing Engine (9.1.0.0) has 28 percent memory utilization, the two CFEB processors are using 6 percent, and the FPCs have 8 percent memory utilization.

The second object, jnxOperatingDescr, provides a human readable description of the separate instances in the jnxOperatingBuffer object. For example, 1.1.0.0 represents the midplane, and 7.1.0.0 represents FPC @ 0/*/*.

The output for the show chassis routing-engine command shows similar information to that displayed in the output of the jnxOperatingBuffer object, with 28 percent memory utilization for the Routing Engine.


Check Memory Utilization per Process

Purpose

The standard System Application MIB (RFC 2287, Definitions of System-Level Managed Objects for Applications), describes a set of managed objects that are restricted to information that can be determined from the system itself. The object sysApplElmtRunMemory provides information about applications and associated elements that have run or are currently running on the host system. (See Figure 19.)

Figure 19: System Application MIB Tree

System Application MIB Tree

Action

To check memory utilization per process, from a management station that has access to the router, and using a tool such as Snmpwalk, enter the following command:

user-bsd# snmpwalk [common arguments] hostname community object-id

Sample Output

use-nms % snmpwalk -Os -M /volume/~/mibs -m all tp1 public sysApplElmtRunMemorysysApplElmtRunMemory.0.0.0 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.2 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.3 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.4 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.5 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.6 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.7 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.8 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.9 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.10 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.11 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.12 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.116 = Gauge32: 526164 Kbytes
sysApplElmtRunMemory.0.0.2023 = Gauge32: 416 Kbytes
sysApplElmtRunMemory.0.0.2131 = Gauge32: 1100 Kbytes
sysApplElmtRunMemory.0.0.2160 = Gauge32: 984 Kbytes
sysApplElmtRunMemory.0.0.2161 = Gauge32: 1100 Kbytes
sysApplElmtRunMemory.0.0.2174 = Gauge32: 996 Kbytes
sysApplElmtRunMemory.0.0.2324 = Gauge32: 0 Kbytes
sysApplElmtRunMemory.0.0.16781 = Gauge32: 1072 Kbytes
sysApplElmtRunMemory.0.0.18311 = Gauge32: 1284 Kbytes
sysApplElmtRunMemory.0.0.26827 = Gauge32: 1368 Kbytes
sysApplElmtRunMemory.3.1.1 = Gauge32: 4028 Kbytes
sysApplElmtRunMemory.3.2.2163 = Gauge32: 3196 Kbytes
sysApplElmtRunMemory.3.3.2185 = Gauge32: 1624 Kbytes
sysApplElmtRunMemory.3.4.2194 = Gauge32: 9768 Kbytes
sysApplElmtRunMemory.3.7.2168 = Gauge32: 2484 Kbytes
sysApplElmtRunMemory.3.9.2169 = Gauge32: 3004 Kbytes
sysApplElmtRunMemory.3.12.2172 = Gauge32: 2108 Kbytes
sysApplElmtRunMemory.3.13.2173 = Gauge32: 1888 Kbytes
sysApplElmtRunMemory.3.14.2164 = Gauge32: 1672 Kbytes
sysApplElmtRunMemory.3.15.2175 = Gauge32: 1644 Kbytes
sysApplElmtRunMemory.3.16.2165 = Gauge32: 1632 Kbytes
sysApplElmtRunMemory.3.17.2176 = Gauge32: 2716 Kbytes
sysApplElmtRunMemory.3.19.2177 = Gauge32: 1668 Kbytes
sysApplElmtRunMemory.3.20.2178 = Gauge32: 2160 Kbytes
sysApplElmtRunMemory.3.21.2179 = Gauge32: 2164 Kbytes
sysApplElmtRunMemory.3.23.2188 = Gauge32: 1688 Kbytes
sysApplElmtRunMemory.3.25.2186 = Gauge32: 1292 Kbytes
sysApplElmtRunMemory.3.26.2180 = Gauge32: 1676 Kbytes
sysApplElmtRunMemory.3.27.2181 = Gauge32: 2052 Kbytes
sysApplElmtRunMemory.3.30.2187 = Gauge32: 1236 Kbytes
sysApplElmtRunMemory.3.31.2184 = Gauge32: 1032 Kbytes
sysApplElmtRunMemory.3.34.2171 = Gauge32: 1156 Kbytes
sysApplElmtRunMemory.3.35.2047 = Gauge32: 1132 Kbytes
sysApplElmtRunMemory.3.36.2189 = Gauge32: 1836 Kbytes
sysApplElmtRunMemory.3.37.2191 = Gauge32: 1052 Kbytes
sysApplElmtRunMemory.5.5.7495 = Gauge32: 7628 Kbytes
sysApplElmtRunMemory.5.6.2167 = Gauge32: 11824 Kbytes
sysApplElmtRunMemory.5.6.26829 = Gauge32: 11880 Kbytes
sysApplElmtRunMemory.5.8.26828 = Gauge32: 7984 Kbytes
sysApplElmtRunMemory.5.28.2182 = Gauge32: 1468 Kbytes
sysApplElmtRunMemory.5.29.2183 = Gauge32: 1828 Kbytes

user-nms % snmpwalk -Os -M /volume/~/mibs -m all tp1 public sysApplElmtRunName
sysApplElmtRunName.0.0.0 = (swapper)
sysApplElmtRunName.0.0.2 = (pagedaemon)
sysApplElmtRunName.0.0.3 = (vmdaemon)
sysApplElmtRunName.0.0.4 = (bufdaemon)
sysApplElmtRunName.0.0.5 = (syncer)
sysApplElmtRunName.0.0.6 = (netdaemon)
sysApplElmtRunName.0.0.7 = (if_pfe)
sysApplElmtRunName.0.0.8 = (if_pfe_listen)
sysApplElmtRunName.0.0.9 = (cb_poll)
sysApplElmtRunName.0.0.10 = (vmuncachedaemon)
sysApplElmtRunName.0.0.11 = (scs_housekeeping)
sysApplElmtRunName.0.0.12 = (if_pic_listen)
sysApplElmtRunName.0.0.116 = mfs
sysApplElmtRunName.0.0.2023 = pccardd
sysApplElmtRunName.0.0.2131 = cron
sysApplElmtRunName.0.0.2160 = /sbin/watchdog
sysApplElmtRunName.0.0.2161 = /usr/sbin/tnetd
sysApplElmtRunName.0.0.2174 = /usr/sbin/tnp.sntpd
sysApplElmtRunName.0.0.2324 = (peer proxy)
sysApplElmtRunName.0.0.16781 = /usr/libexec/getty
sysApplElmtRunName.0.0.18311 = /usr/sbin/xntpd
sysApplElmtRunName.0.0.26827 = telnetd
sysApplElmtRunName.3.1.1 = /sbin/preinit
sysApplElmtRunName.3.2.2163 = /usr/sbin/chassisd
sysApplElmtRunName.3.3.2185 = /usr/sbin/dfwd
sysApplElmtRunName.3.4.2194 = /sbin/dcd
sysApplElmtRunName.3.7.2168 = /usr/sbin/snmpd
sysApplElmtRunName.3.9.2169 = /usr/sbin/mib2d
sysApplElmtRunName.3.12.2172 = /usr/sbin/apsd
sysApplElmtRunName.3.13.2173 = /usr/sbin/vrrpd
sysApplElmtRunName.3.14.2164 = /usr/sbin/alarmd
sysApplElmtRunName.3.15.2175 = /usr/sbin/pfed
sysApplElmtRunName.3.16.2165 = /usr/sbin/craftd
sysApplElmtRunName.3.17.2176 = /usr/sbin/sampled
sysApplElmtRunName.3.19.2177 = /usr/sbin/ilmid
sysApplElmtRunName.3.20.2178 = /usr/sbin/rmopd
sysApplElmtRunName.3.21.2179 = /usr/sbin/cosd
sysApplElmtRunName.3.23.2188 = /usr/sbin/fsad
sysApplElmtRunName.3.25.2186 = /usr/sbin/irsd
sysApplElmtRunName.3.26.2180 = /usr/sbin/nasd
sysApplElmtRunName.3.27.2181 = /usr/sbin/fud
sysApplElmtRunName.3.30.2187 = /usr/sbin/rtspd
sysApplElmtRunName.3.31.2184 = /usr/sbin/smartd
sysApplElmtRunName.3.34.2171 = /usr/sbin/inetd
sysApplElmtRunName.3.35.2047 = syslogd
sysApplElmtRunName.3.36.2189 = /usr/sbin/spd
sysApplElmtRunName.3.37.2191 = /usr/sbin/eccd
sysApplElmtRunName.5.5.7495 = /usr/sbin/rpd
sysApplElmtRunName.5.6.2167 = /usr/sbin/mgd
sysApplElmtRunName.5.6.26829 = mgd: (mgd) (user)/dev/ttyp0
sysApplElmtRunName.5.8.26828 = -cli
sysApplElmtRunName.5.28.2182 = /usr/sbin/ppmd
sysApplElmtRunName.5.29.2183 = /usr/sbin/lmpd

Meaning

The sample output shows the total amount of real system memory, measured in kilobytes, currently allocated to the processes retrieved by the sysApplElmtRunMemory object.

The sysApplElmtRunMemory object shows granular, per-process information about memory usage. For example, the sampled process (3.17.2176) is using 2716 kilobytes of memory.

The sysApplElmtRunName object provides a description of the separate instances displayed in the sysApplElmtRunMemory object. For example, the sampled process is represented by the OID 3.17.2176.