【问题标题】:jvm monitoring - from command linejvm 监控 - 从命令行
【发布时间】:2021-02-19 16:55:01
【问题描述】:

我正在寻找在 Linux VM 中运行的命令,以持续监控我的客户端的以下指标:

jvm.cpu_load.process
jvm.thread_count
jvm.non_heap_memory
jvm.heap_memory_max

您能帮我找到获取这些指标的确切命令吗?

【问题讨论】:

  • 也许使用 jmx 或 jcmd?

标签: java linux jvm monitoring


【解决方案1】:

您可以通过对您的进程反复运行jcmd 来获取一些此类信息。运行 jcmd <pid> help 以了解您的 JVM 支持什么。例如,您可以通过运行jcmd <pid> GC.heap_info 来获取有关进程使用内存的信息。

但是,如果您想定期获取此信息,您应该考虑编写一个程序来查询 JMX (https://docs.oracle.com/en/java/javase/15/management/monitoring-and-management-using-jmx-technology.html) 或使用 JFR 来获取此数据。如果您是 Java 14 o 以上,那么您可以使用 JFR Streaming 在数据流出时对其进行处理(在JEP 394 中添加)。

JFR 是一种永远在线的分析机制,它会定期转储您可以处理的数据,但在非流模式下,它会在收集到特定数量的数据后转储内容。

如果您只想远程监控指标,则推荐使用 JMX 工具,或者使用现有工具(如 NewRelic 的代理或Netflix's Servo 库)通过 JMX 获取此数据。不想自己写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多