Cisco 进程内存使用情况

网络工程 思科 思科-ios snmp
2021-08-02 18:07:25

我正在尝试监控 Cisco 进程内存使用情况。这是我通过命令行得到的:

show system internal processes memory | inc PID|ipfib
 PID TTY      STAT     TIME MAJFLT  TRS   RSS    VSZ %MEM COMMAND
 6069 ?        Ssl  00:14:01      0    0 169480 532812  1.0 /lc/isan/bin/ipfib

我想使用我的 SNMP poller 来获取这些信息,到目前为止我只发现 1.3.6.1.4.1.9.9.109.1.2.1.1 包含所有进程名称、pid、进程使用情况。

我只需要内存使用情况,但我找不到。

1个回答

我没有可用的ipfib进程的设备,但假设你运行的是IOS,无论进程名称是什么,原理都是一样的......

找到相关进程的索引:

首先,遍历cpmProcessName并找到索引...例如,我将查找“ARP Input”...

(py27_test)[mpenning@tsunami fast]$ snmpbulkwalk -v 2c -c public 10.1.1.1  \
  .1.3.6.1.4.1.9.9.109.1.2.1.1.2 | grep "ARP Input"
CISCO-PROCESS-MIB::cpmProcessName.1.12 = STRING: ARP Input
CISCO-PROCESS-MIB::cpmProcessName.1.239 = STRING: RARP Input
(py27_test)[mpenning@tsunami fast]$

我们可以看到“ARP Input”进程的索引是1.12...

分配的所有内存:

现在让我们找出曾经分配给这个进程的所有内存。我们将snmpgetcpmProcExtMemAllocatedRev做一个...确保将 1.12 附加到 cpmProcExtMemAllocatedRev OID...

(py27_test)[mpenning@tsunami fast]$ snmpget -v 2c -c public 10.1.1.1 \
  .1.3.6.1.4.1.9.9.109.1.2.3.1.1.1.12
CISCO-PROCESS-MIB::cpmProcExtMemAllocatedRev.1.12 = Gauge32: 1259940452 bytes
(py27_test)[mpenning@tsunami fast]$

cpmProcExtMemAllocatedRev分配给进程所有内存的总和这意味着您必须减去从进程中释放的所有内存。

释放所有内存:

要查找曾经被释放的所有内存,请轮询cpmProcExtMemFreedRev OID,并附加索引 (1.12)...

(py27_test)[mpenning@tsunami fast]$ snmpget -v 2c -c public 10.1.1.1 \
  .1.3.6.1.4.1.9.9.109.1.2.3.1.2.1.12
CISCO-PROCESS-MIB::cpmProcExtMemFreedRev.1.12 = Gauge32: 1259931892 bytes
(py27_test)[mpenning@tsunami fast]$

总数/数学:

所以我的“ARP​​ Input”进程使用的总内存是:

AllocatedMem - FreedMem   = MemoryUsed

1259940452   - 1259931892 = *8560 Bytes*