如何从没有X11的Linux控制台触发手动Java GC【JAVA教程】

!
也想出现在这里? 联系我们
信息

如何从没有X11的Linux控制台触发手动Java GC,第1张

概述如何从没有X11的Linux控制台触发手动Java GC

我需要一种方法能够从Ubuntu的linux控制台脚本触发完整的GC。 我知道这是非常糟糕的做法,但没有太多细节,这使得我的服务器运行,这只是意味着1或2天,而我解决实际问题,所以我不必在夜间醒来,执行通过jconsole或jvisualvm手动GC。

另外,我必须做一个鼠标脚本,每3-4个小时左右点击一次button,这更糟糕。

请帮忙。

当客户端调用CoCreateInstance并且意外closures时,Out-proc COM Server内存泄漏

挂起的JVM,“Jstack -F pID”只能修复

我怎样才能在multithreading环境中实现垃圾收集?

在CentOS中禁用UseGCOverheadlimit

监视Java垃圾收集时的cpu,RAM,I / O使用情况

windows和linux上的内存页面写入检测

什么时候由.NET进程分配的内存被释放回windows

GC暂停和杀死-Stop产生相同的行为?

Python程序吃RAM

使用WMI获取垃圾收集器指标

如果你可以让你的应用程序启动一个JMX服务器(我相信这是你使用jconsole / jvisualvm所隐含的),那么你可以通过命令行工具调用Memory MBean的gc *** 作。

首先,你需要一些命令行的JMX客户端。 我曾经使用过这个简单的命令行调用,它工作正常。 (编辑:实际上我刚刚用它来测试下面的命令,它在本地Tomcat进程上成功调用了GC)

那么你需要制定出触发垃圾回收的命令。 我认为这应该工作(你当然需要改变主机/端口/凭据适当):

java -jar cmdline-jmxclIEnt-XXjar – localhost:8081 java.lang:type=Memory gc

最后,你可以通过cron或者等价的方式调度这个命令。

瞧!

如果您有oracle jvm 1.7,则可以使用jcmd列出jvm PID,然后将jcmd <pID> GC.run GC。

jcmd <pID> help会告诉你什么其他命令可用。

jcmd <pID> GC.run

例:

jcmd 20350 GC.run

这不是不好的做法,即使对于由JVM执行的Java应用程序也是不可能的。 有一个gc()调用可用,但它只是提示JVM运行垃圾收集。 在控制台中,通常无法在运行时影响JVM。

有人问这个问题的windows平台,请参阅问题如何从windows命令行运行时请求JVM垃圾回收(而不是从代码)

您可以检查堆栈/堆大小(最小和最大)的JVM参数。 在这个领域你可以做很多的调整,但是大部分都是针对你正在使用的JVM。

针对大型应用程序的JVM性能调优

总结

以上是内存溢出为你收集整理的如何从没有X11的Linux控制台触发手动Java GC全部内容,希望文章能够帮你解决如何从没有X11的Linux控制台触发手动Java GC所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞154 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容