问题标签 [sigar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8754 浏览

java - 如何在 Linux 上使用 SIGAR 和 maven?

我试图在我的 linux 项目上运行 SIGAR,使用 maven 作为依赖项和 spring 框架。根据官方网站,在我的 Mavenpom.xml文件中,我添加了 Maven 依赖项和 Maven 存储库。

然而,这还不够。现在我有一个错误:

我搜索了 maven 网站,找不到我需要的 amd64-linux jar,也不知道如何使用 Maven 添加它。

我该如何解决这个问题?

0 投票
5 回答
11508 浏览

java - 如何在基于 Ubuntu 的 Linux 上安装 SIGAR?

我在一个带有 Maven 和 Spring 的 java 项目中使用 SIGAR。我的pom.xml文件中包含 Maven 依赖项和 Maven 存储库,如以下链接所述:http: //mavenhub.com/mvn/thirdparty-uploads/org.hyperic/sigar/1.6.5.132

此外,我正在使用 Jetty 启动程序(它启动由 .war 创建的文件mvn install)。

但是,SIGAR 仍然无法工作。显然我还需要安装 libsigar-amd64-linux-1.6.4。

所以我下载了那个文件,但现在我不知道如何处理它。我该如何解决?我把那个文件放在哪里?

0 投票
1 回答
4530 浏览

java - 使用 Sigar 库获取进程 CPU 使用率

我一直在尝试通过使用Sigar 库来获取进程 CPU 使用率,但我总是得到 0 的值,即使它应该更高。

我每秒都在计时器上这样做:

我一直在看这个其他相关问题及其接受的答案,但它似乎无法正常工作,而且诸如此类TOTAL_TIME_UPDATE_LIMIT的事情有点神秘。我还看了一下另一个,但它并没有为我提供任何新的东西。

有没有人尝试过使用 Sigar 监控进程 CPU?实现它的方法是什么?

谢谢。

0 投票
1 回答
971 浏览

java - 无法使用 sigar 获取处理时间

我正在尝试使用 sigar 获取每个进程的进程时间。我收到此错误:

我已经尝试过设置所有权限的策略文件。但我仍然遇到错误。我正在使用 netbeans 8.0 。我已经设置了

-Djava.security.manager -Djava.security.policy=src/dir1/dir2/important.policy

0 投票
1 回答
4917 浏览

vmware - Sigar 1.6.4 崩溃:EXCEPTION_ACCESS_VIOLATION

我正在使用用于 Java 的 Sigar 库,但出现此错误:

Java 运行时环境检测到致命错误:EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000010014ed4, pid=1560, tid=4812

在这里您可以看到生成的错误日志。(以及我的机器规格)

这在程序运行几个小时后随机发生。然后,它崩溃了,我无法再监控任何参数(cpu、ram、disk...)。这太烦人了,而且让 SIGAR 完全没用,因为你不能相信它是否会崩溃。

我一直在阅读这两个主题,但似乎是图书馆的问题,没有提出适当的解决方案(而且图书馆看起来没有修复错误)

在这个答案中有一个人在谈论如何解决 64 位问题,但该文件甚至无法下载。(没有java/src文件夹)。

关于如何处理它的任何想法?它甚至可以修复吗?如果不是,您会建议我使用哪些 Sigar 替代品?

如果这是相关的,这些是我在我的应用程序中使用的 Sigar 函数:

0 投票
1 回答
914 浏览

java - 如何获取 JVM 中所有线程的 CPU 百分比?

我有一个 java 监控应用程序,我用它来监控 Linux 上的 CPU(除其他外)。

我正在使用 Sigar 来获取我的进程的 CPU 使用率。 http://cpansearch.perl.org/src/DOUGM/hyperic-sigar-1.6.3-src/docs/javadoc/org/hyperic/sigar/Sigar.html#getProcCpu%28long%29

但是,这只是在过程级别。htop 显示我的应用程序中的线程以及每个线程使用的 CPU 百分比。

Sigar可以做到这一点吗?

如果我在多核机器上,是否可以获得每个核心的 CPU 利用率?

我想在 CPU 长时间以 100% 运行时发出警报,并确定线程列表中可能的罪魁祸首。

0 投票
1 回答
982 浏览

vmware - 在 Sigar 通过其进程名称的一部分获取进程 ID

我正在使用Sigar 库来获取进程 ID 并对其进行监视。

我有一个进程可以根据运行该进程的应用程序版本更改名称。例如:

  • myProcess64.exe
  • myProcess65.exe

有没有办法使用 Sigar 通过指定类似的东西来获取进程 ID myProcess%

现在我正在使用这个:

我一直在尝试通过使用PTQL(进程表查询语言)语法来使用正则表达式,但没有成功:

0 投票
2 回答
1352 浏览

java - 打包到 jar/exe 后 SIGAR API 不起作用

我正在尝试使用 SIGAR API 收集系统信息。在我的库中包含 sigar.jar 后,Netbeans 给出了sigar-amd64-winnt.dll未找到的错误。将该文件添加到库后,它运行良好。

现在我需要创建一个可执行的 jar,所以我使用 NetBeans 来构建我的项目。Netbeans 自动删除了 .dll 文件,在我手动将其复制回 dist 文件夹后,我的程序就可以工作了。我现在正在尝试使用 Launch4j 创建一个 exe 文件。当我运行它时,抛出一个 java 异常,可能是因为 Launch4j 删除了 .dll 文件。

我如何确保 Launch4j 将其包含在 exe 文件中?

我浏览了许多关于 SO 的答案,但无法解决我的问题。在下面提到了一些-

sigar-amd64-winnt.dll ...无法引用它或将其与 .jar 捆绑

如何在 Java 项目中包含 SIGAR API

任何帮助,将不胜感激..

编辑

当我测试运行 exe 包装器时,Launch4j 在其日志中给出以下异常 -

0 投票
0 回答
898 浏览

netbeans - 似乎无法在 java Web Start 中加载 dll

我的 java webstart 应用程序有一个大问题,我尝试了很多解决方案,但最终似乎没有一个能正常工作。

我需要编写一个 webstart 小程序来加载有关客户端计算机的基本硬件信息,以检查我的客户端是否可以连接到我们的系统并使用我们课程的四个软件。我使用 Sigar 加载 CPU 和内存信息,然后使用 JNI 加载一个自定义的 C++ 脚本来检查显卡名称(这个工作完美)。

我已经将我所有的 dll 放在 src/resources 文件夹中以将它们加载到 jar 中,我还使用了我们在这里称为“引擎”的东西,它们被归类为执行指定操作(在我们的例子中,Jni 引擎、配置引擎和数据引擎(下面的代码)),我是 webstart 的新手,所以我不确定这个概念是否适用于库加载。

我尝试将 dll 作为 Netbeans 中的库添加到 jar 中,我尝试在 jnlp 中添加 dll,但每次运行都会重新创建它,我无法使用项目属性添加它们,最后,我已经构建我的数据引擎的方式应该在 java temp 目录中加载 dll,以防它们不存在,但 Sigar 仍然不想工作。我还将我的 dll 正确配置在 java.library.path 中(因为它在本地工作)。

当我在本地运行我的主类时它可以工作(通过右键单击运行),但是当我单击运行按钮加载 webstart 时,它会崩溃并显示此错误消息(它发生在 ConfigEngine 中,因为它扩展了 SigarBase):

JNLPClassLoader:在 java.library.path 中查找库 sigar-amd64-winnt.dll.dll 没有 sigar-amd64-winnt.dll org.hyperic.sigar.SigarException:在 java.library.path 中没有 sigar-amd64-winnt.dll

这是代码:

JNi 引擎(加载显卡的 c++ 代码)

配置引擎

最后,我的数据引擎尝试加载所有 dll 并更改库路径(其中大部分是临时的,因为它是补丁上的补丁)

我的主类也有一些问题(NetBeans 不希望我的 JAppletForm 成为我项目的主类,但我可能会重新创建项目,因为我尝试的数百个补丁破坏了构建。我的主类只需使用 ConfigEngine 的 GetMap 加载 HashMap 并在本地显示它,如果它使用 webstart 运行,则在 JAppletForm 中显示它。

这是一个很大的问题,所以如果被问到,我会用你需要的所有信息来更新我的问题。

0 投票
2 回答
593 浏览

java - 查找分配给进程的虚拟内存量

有没有办法找出分配给特定进程的总虚拟内存量?我有一个程序,我还安装了一个性能跟踪器,它将监控进程正在使用多少内存以及剩余多少内存可供使用。

为此,我需要知道为进程分配了多少内存。有没有办法在 Java 中做到这一点?我在 Windows 7 上运行。

此外,我目前一直在使用 Sigar 类来监控其他内存统计信息。sigar 是否有一个特定的类/函数可以找到我正在寻找的东西?