问题标签 [jvm-arguments]

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 回答
605 浏览

debugging - 为什么我们使用 jvm 参数来调试“server=y”?

当我们传递参数时使用 java 代码进行调试时,有一个参数,即 server=y 我们为什么要使用它?有人可以提供有关它的所有详细信息吗???

我使用的参数如下 - -Xdebug -Xrunjdwp:transport=dt_socket,address=4010,server=y,suspend=y

0 投票
3 回答
223 浏览

jvm-arguments - 运行 Berkeley DB JE 的最佳 Java 选择是什么?

我有一台将大约 502,000,000 行插入 BDB JE 的机器。键和值的示例是:

所有键和值的长度大致相同。JVM 使用以下参数启动:

但是,当它达到约 50,000,000 行时,JVM 被“杀死”(我只是收到“被杀死”的消息,不知道它是如何/被谁杀死的)。我只是猜测它会尝试运行垃圾收集,然后它无法释放足够的内存或其他东西。但是,有了这么多的 -Xmx,我想它应该没有任何问题。

我使用 deferredWrites 并且日志文件的大小设置为 100MB。从 DPL 切换到 Base API 没有任何区别。

我正在使用具有 12GB RAM 的 JDK 6.0 和 SUSE x86_64。还有其他进程需要剩余的 RAM,因此实际上不能为此插入任务分配超过 9GB 的空间。

虚拟机:

任何解决此问题的提示表示赞赏。

0 投票
3 回答
4198 浏览

java - 为什么New Relic会吃掉大量的tomcat内存?

最近我们开始使用 New Relic 来监控我们托管在 tomcat 7.0.6 服务器上的生产 webapp,但我们观察到这个 tomcat 的内存占用不断增加,并且在一周内它吃光了所有服务器(AWS High-Memory Double Extra Large Instance ) 内存并变得无响应,恢复它的唯一方法是重新启动它。我们在启动 tomcat 时提供 Xms 和 Xmx 参数,但在几个小时内,tomcat 进程的内存使用量超过 Xmx 值,并且它不断增加,直到所有服务器内存结束。这是进程命令:

理想情况下,我希望这个过程不使用超过 8GB 的​​内存,但在几个小时内它会超过 10GB,并且在几天内它会超过 20GB,并且该服务器上的所有其他内容都会因此受到影响(我使用“顶部”来查看内存使用情况) . 这怎么可能?

0 投票
2 回答
4363 浏览

java - 为什么将 -Xmx 设置得太高有时会导致 JVM 失败,即使有可用的 RAM?

基本上我们已经注意到,在某些计算机上设置 JVM 选项 -Xmx(最大堆大小)有时会导致 JVM 无法初始化,即使系统上有足够的 RAM。

例如,在 4gb 机器上,我们有 -Xmx1024m 失败但 -Xmx800m 有效。我可以理解在 1gb 机器上,甚至是 2gb 机器上,但在 4gb 机器上,特别是考虑到 Windows、Linux 等可以交换 RAM,为什么会失败?

我已经看到很多线程和问题说要减少你的最大堆大小,但没有人能解释为什么它会失败,这正是我真正想要的。

同样,你怎么说消耗尽可能多的内存,直到达到一定的大小?

0 投票
3 回答
6043 浏览

java - 为具有 3GB 缓存的 4GB JVM 进行适当的 JVM/GC 调整

我正在寻找适当的设置来为Web 应用程序配置 JVM 。我已经阅读了有关旧/新/烫发一代的信息,但我无法在最好的情况下使用这些参数来进行此配置。

在 4 GB 中,大约3 GB 用于缓存(使用EhCache的应用缓存),因此我正在寻找考虑到这一点的最佳设置。仅供参考,缓存在应用程序的生命周期内是静态的(从磁盘加载,永不过期),但被大量使用。

我已经分析了我的应用程序,并且我已经对数据库查询、应用程序的架构、缓存大小等进行了优化......我只是在这里寻找 JVM 配置建议。我测量了垃圾收集器的99% 吞吐量,并且在 Full GC 运行时暂停 6-8 秒(大约每 1/2 小时一次)。

以下是当前的 JVM 参数:

那些参数可能完全关闭了,因为它们是很久以前写的......在应用程序变得那么大之前。

我正在使用 Java 1.5 64 位。

您看到任何可能的改进吗?

编辑:机器有4个核心。

0 投票
3 回答
8678 浏览

hadoop - 我们可以在 GenericOptionsParser 中使用 -D 选项设置多个泛型参数吗?

我想通过 GenericOptionsParser 将多个配置参数传递给我的 Hadoop 作业。

使用“-D abc=xyz”,我可以传递一个参数并能够从配置对象中检索相同的参数,但我无法传递多个参数。

是否可以传递多个参数?如果可以,如何?

0 投票
1 回答
746 浏览

java - 如果系统属性值包含空格,java getInputArguments() 将返回尴尬的结果

考虑一个主要方法:

运行程序的结果:

至少这是在 mac 上的 Oracle/Sun 的 jvm 6 和 win 上的行为(尚未在其他地方测试过)。

当系统属性包含空格时,有谁知道获取输入参数的可靠方法?

0 投票
1 回答
8408 浏览

java - 从 Eclipse 将 Xmx 参数传递给 ant 脚本

试图将一个-Xms-Xmx参数传递给通过 Eclipse 运行的 Ant 脚本。但无法通过总是得到:

任何指向运行 ant 脚本的 eclipse 运行时参数的快速指针?

0 投票
2 回答
429 浏览

jvm - 在生成 output.cfg 文件的地方使用 -XX:+PrintCFGToFile jvm 选项?

我安装了 JDK 6 的 fastdebug 版本,并运行了以下命令:

java -XX:+PrintCFGToFile Test

但没有找到带有打印信息的文件...我在 Linux 和 Windows 操作系统上都试过了,但没有任何成功。放弃后,我从源代码(OpenJDK 7 源代码,Ubuntu)构建了 JDK,但没有成功,同样,它打印"VM option '+PrintCFGToFile'"但没有在执行类的目录中创建文件,也没有在 JDK bin 目录中......我寻找“输出.cfg”在文件系统上,什么也没找到...我检查了来源,似乎该文件确实有名称“output.cfg”(如果我没记错的话是CFGPrinter)

怎么了?是否应指定任何其他选项?如何以及在何处获取包含控制流图信息的此文件?

0 投票
5 回答
3202 浏览

java - 有没有办法判断 JVM 当前使用的是哪种 GC 算法

我正在使用 Java 5,我们的自定义服务器应用程序需要 GC 调整,因为有时我们会在高峰时段遇到 15-20 秒的暂停。我们在带有 JVM 参数的服务器类机器上运行 Java 5,例如-server -d64

有没有办法判断 JVM 当前使用的是哪种 GC 算法?

http://docs.oracle.com/javase/1.5.0/docs/guide/vm/gc-ergonomics.html

在运行服务器 VM 的服务器级机器上,垃圾收集器 (GC) 已从以前的串行收集器 ( -XX:+UseSerialGC) 更改为并行收集器 ( -XX:+UseParallelGC)。-XX:+UseSerialGC您可以使用java 命令的命令行选项覆盖此默认值。

1)我想知道这真的发生了吗?

我的下一个问题是我在命令行参数中添加了以下内容

2) 除了记录 GC 日志之外,它们是否会对正在运行的 JVM 产生任何性能或行为影响?