我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在没有 WMI 的 Windows 中查找 MaxNumberOfProcesses

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在没有 WMI 的 Windows 中查找 MaxNumberOfProcesses

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面编程网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《在没有 WMI 的 Windows 中查找 MaxNumberOfProcesses》,涉及到,有需要的可以收藏一下

问题内容

我们的监控解决方案目前使用 wmi 来实现一些指标,但是当负载不足时,wmi 的表现非常糟糕,并且经常无法及时返回,从而导致大量关于各种离线或缺失指标的错误警报。

通过调用 psapi.h、sysinfoapi.h 等中的 windows 函数来替换 wmi 查询已经解决了其中的大部分问题,并且返回速度提高了大约 100 倍,但是我无法找到一种方法来获取 wmi 查询的等效值win32_operatingsystem.maxnumberofprocesses

windows 文档中的定义如下:

MaxNumberOfProcesses

Data type: uint32

Access type: Read-only

Qualifiers: MappingStrings ("MIB.IETF|HOST-RESOURCES-MIB.hrSystemMaxProcesses")

Maximum number of process contexts the operating system can support. 
The default value set by the provider is 4294967295 (0xFFFFFFFF). If there is no fixed maximum, the value should be 0 (zero). On systems that have a fixed maximum, this object can help diagnose failures that occur when the maximum is reached—if unknown, enter 4294967295 (0xFFFFFFFF).

This property is inherited from CIM_OperatingSystem.

我在大约 10 台不同的机器上测试了这个值,每台机器都有不同数量的 cpu 和 ram,所有这些机器都返回了上述默认值 4294967295 (0xffffffff)。我是否假设 windows 实际上只是直接发回该值,或者我应该返回 ulong_max 的值,还是有其他方法可以找到该值应该是什么?

我尝试找出一种访问 windows 主机 mib 的方法,但除了使用一些外部工具(而不是直接通过代码)之外,找不到任何详细信息。

我目前正在使用 c 库使用 go 语言进行编程。

如果有人能够深入了解如何在不使用 wmi 的情况下检索此值,我们将不胜感激。


解决方案


您可以使用 cim_operatingsystem 类 cim(通用信息模型)https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/cim-operatingsystem

[Abstract, UUID("{8502C565-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class CIM_OperatingSystem : CIM_LogicalElement
{
  string   Caption;
  string   CreationClassName;
  string   CSCreationClassName;
  string   CSName;
  sint16   CurrentTimeZone;
  string   Description;
  boolean  Distributed;
  uint64   FreePhysicalMemory;
  uint64   FreeSpaceInPagingFiles;
  uint64   FreeVirtualMemory;
  datetime InstallDate;
  datetime LastBootUpTime;
  datetime LocalDateTime;
  uint32   MaxNumberOfProcesses;   <----------------------------------------
  uint64   MaxProcessMemorySize;
  string   Name;
  uint32   NumberOfLicensedUsers;
  uint32   NumberOfProcesses;
  uint32   NumberOfUsers;
  uint16   OSType;
  string   OtherTypeDescription;
  uint64   SizeStoredInPagingFiles;
  string   Status;
  uint64   TotalSwapSpaceSize;
  uint64   TotalVirtualMemorySize;
  uint64   TotalVisibleMemorySize;
  string   Version;
};

如果机器上进程数不限制maxnumberofprocesses0

关于wmicim之间的关系见https://www.red-gate.com/simple-talk/sysadmin/powershell/powershell-day-to-day-admin-tasks-wmi,-cim-and-pswa/

通用信息模型

命名空间:https://wutils.com/wmi/root/cimv2/properties/maxnumberofprocesses.html

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持编程网!更多关于Golang的相关知识,也可关注编程网公众号。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在没有 WMI 的 Windows 中查找 MaxNumberOfProcesses

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在没有 WMI 的 Windows 中查找 MaxNumberOfProcesses

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面编程网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《在没有 WMI 的 Windows 中查找 MaxNumberOfProce
在没有 WMI 的 Windows 中查找 MaxNumberOfProcesses
2024-04-05

在Windows中查找你的WLAN网络密码

在Windows中查找WLAN网络密码,可以按照以下步骤操作:1. 打开控制面板:可以通过开始菜单中的搜索栏,输入“控制面板”来快速找到并打开控制面板。2. 进入网络和Internet设置:在控制面板界面中,找到并点击“网络和Interne
2023-09-12

mysql之查找所有数据库中没有主键的表问题

目录查找所有数据库中没有主键的表修改mysql数据表主键总结查找所有数据库中没有主键的表select table_schema,table_name from information_schema.tables where (table
2023-03-23

mysql查找所有数据库中没有主键的表问题怎么解决

今天小编给大家分享一下mysql查找所有数据库中没有主键的表问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。查找所
2023-07-05

在 PostgreSQL 和 MySQL 中的所有表中查找特定数据

使用大型数据库时,您可能会发现自己需要在多个表和列中查找特定值。这可能是一项具有挑战性的任务,尤其是当您不知道到底该去哪里查看时。幸运的是,有一些方法可以在 postgresql 和 mysql 中自动执行此搜索。在 postgresql
在 PostgreSQL 和 MySQL 中的所有表中查找特定数据
2024-07-26

如何在MySQL中查找包含两个特定列的所有表?

要查找两个特定的列名称,请使用 information_schema.columns 在这里,我使用 Id 代替 columnA,使用 Name 代替 columnB -mysql> select table_name as TableNa
2023-10-22

没有必需的模块提供包 :在当前目录或任何父目录中找不到 go.mod 文件;

从现在开始,我们要努力学习啦!今天我给大家带来《没有必需的模块提供包 :在当前目录或任何父目录中找不到 go.mod 文件;》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎
没有必需的模块提供包 :在当前目录或任何父目录中找不到 go.mod 文件;
2024-04-04

C++如何实现在有序数组中查找元素的第一个和最后一个位置

这篇文章主要讲解了“C++如何实现在有序数组中查找元素的第一个和最后一个位置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++如何实现在有序数组中查找元素的第一个和最后一个位置”吧!Fin
2023-06-20

PHP如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符

本篇文章介绍了PHP中查找字符串最后一次出现的位置的方法,并获取从该位置到字符串结尾的所有字符。使用strrpos()函数确定最后出现的位置,然后用substr()函数获取后续字符。示例代码展示了如何使用这些函数查找并获取子字符串。其他注意事项包括offset参数、空子字符串和子字符串长度超过主字符串的情况。
PHP如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
2024-04-02

Python如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符

Python中,可以使用rfind()方法查找字符串在另一个字符串中最后一次出现的位置。要提取从最后出现位置到字符串结尾的字符,使用substringing操作即可。此外,还有in操作符、正则表达式和第三方库等其他方法可供选择。选择哪种方法取决于具体情况的效率和功能需求。
Python如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
2024-04-02

Java如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符

本文介绍了在Java中查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符的方法。通过使用lastIndexOf()方法和substrin()方法,可以轻松实现此功能。此外,还提供了替代方法,使用正则表达式来查找字符串的最后一次出现。
Java如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
2024-04-02

Go语言如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符

在Go中查找字符串最后一次出现的索引并返回剩余内容。使用strings.LastIndex查找索引,然后通过strings.substr提取剩余内容。其他方法包括正则表达式和循环。代码示例说明了strings.LastIndex和strings.substr的用法。
Go语言如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
2024-04-02

C语言如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符

详解如何使用C语言strstr函数查找字符串中最后一次出现的子串,并返回子串后续内容。方法是遍历主串,找到子串后计算其长度,然后返回子串在主串中的位置加上长度后的内容。
C语言如何查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录