什么是获取SNMP中CPU核心数量的OID

问题描述 投票:2回答:3

有谁知道什么是OID来获取SNMP中的CPU核心数量?我想得到一个Integer值。

谢谢。

snmp
3个回答
0
投票

您可以对此OID执行SNMP步骤:1.3.6.1.2.1.25.3.3.1.2它将返回每个CPU的负载,您可以简单地计算结果,并且您将知道核心数。

OID 1.3.6.1.2.1.25.3.3.1.2遵循标准/ RFC的HOST-RESOURCES-MIB,因此它应该在其他平台上运行。 http://www.oidview.com/mibs/0/HOST-RESOURCES-MIB.html

我使用SharpSnmpLib的示例代码:

using Lextm.SharpSnmpLib;
using Lextm.SharpSnmpLib.Messaging;
using Lextm.SharpSnmpLib.Security;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication
{
  class Program
  {
    static void Main(string[] args)
    {

      var result = new List<Variable>();
      Messenger.BulkWalk(VersionCode.V2,
                     new IPEndPoint(IPAddress.Parse("10.10.10.23"), 161),
                     new OctetString("public"),
                     new ObjectIdentifier("1.3.6.1.2.1.25.3.3.1.2"),
                     result,
                     6000,
                     10,
                     WalkMode.WithinSubtree,
                     null,
                     null);
    }
  }
}

result的数量将是4,因为我正在使用具有4核的Intel i5。


0
投票

这是基于@ celso-catarino-neto之前回答的NETSNMP版本

➜ snmptable -M +.  -m +ALL -v 2c -c public -Pu -Ci  mylinuxserver  HOST-RESOURCES-MIB::hrProcessorTable
SNMP table: HOST-RESOURCES-MIB::hrProcessorTable

 index        hrProcessorFrwID hrProcessorLoad
   768 SNMPv2-SMI::zeroDotZero              42
   769 SNMPv2-SMI::zeroDotZero              32
   770 SNMPv2-SMI::zeroDotZero              40
   771 SNMPv2-SMI::zeroDotZero              37

hrProcessorTable的OID是......

➜ snmptranslate -M+. -m +ALL  -On  HOST-RESOURCES-MIB::hrProcessorTable
.1.3.6.1.2.1.25.3.3

0
投票

使用snmpwalk工具。

$ snmpwalk -c public <machine ip-addr> 1.3.6.1.2.1.25.3.3.1.2 | wc -l

它将返回一个整数作为所需数量的CPU核心

© www.soinside.com 2019 - 2024. All rights reserved.