java - 检查 Elastic Beanstalk JVM 堆的最佳方法

标签 java amazon-ec2 jvm amazon-elastic-beanstalk heap-dump

我需要从 Elastic Beanstalk 服务器获取 JVM 堆转储,但该服务器没有 jcmd 或 jmap。亚马逊不会在本地安装它们与 JDK。这是安装的内容:

[ec2-user@ip-x-x-x-x ~]$ sudo yum list installed|grep jdk
java-1.7.0-openjdk.x86_64             1:1.7.0.111-2.6.7.2.68.amzn1 @amzn-updates
java-1.8.0-openjdk.x86_64             1:1.8.0.101-3.b13.24.amzn1   @amzn-updates
java-1.8.0-openjdk-headless.x86_64    1:1.8.0.101-3.b13.24.amzn1   @amzn-updates

从 Elastic Beanstalk 上的 JVM 获取堆转储的最佳方法是什么?

最佳答案

我发现您可以通过安装正确的包来安装 jmap:

sudo yum install java-1.8.0-openjdk-devel

这至少应该允许生成堆转储。

此外,为了确保 jmap 中的所有功能都运行,还需要安装:
sudo yum --enablerepo='*-debug*' install java-1.8.0-openjdk-debuginfo

尽管这可能取决于您使用的基线、tomcat 版本等。

创建堆转储时,使用 tomcat 用户:
sudo -u tomcat jmap -dump:live,file=/tmp/test.hprof <pid>

关于java - 检查 Elastic Beanstalk JVM 堆的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44650942/

相关文章:

java - 如何在不同的 RabbitMQ vhost 上设置 Spring Cloud Stream Bindings 的 Binder

java - 我应该如何将这个变量 E 传递给这个类?自定义序列化器 GSON

linux - AWS 云信息 : How to reuse bash script placed in user-data parameter when creating EC2?

在哈希表上使用 get() 方法时的 scala 速度? (是否生成临时 Option() 对象?)

java - 如何真正关闭分层编译?

java - 文本 Pane 颜色错误

java - Oracle 对 Java 泛型的跟踪之一的潜在问题

linux - 在 Linux 上使用手动 STAF 命令

php - 错误 404,即使路由存在 - AWS,Laravel

java - 如何使用 SNMP 监控 JVM 和应用程序