本文向您展示了如何使用JVM内存监控工具。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。
你熟悉JVM内存监控工具的使用吗?下面给大家简单介绍一下。VisualVM中包含的命令行工具包括JPS、JSTAT、JMAP、Jinfo、JStack和JConsole。这些工具与JDK标准版一致,可以为你提供强大的分析能力,实现JVM内存监控。
JVM内存监控工具大全
VisualVM是一个可视化工具,集成了多个JDK命令行工具,可以为你提供强大的分析能力。这些都是免费的!它包括命令行工具,包括JPS、JSTAT、JMAP、Jinfo、JStack和JConsole,与JDK的标准版本一致。
jinfo:可以在运行时输出和修改java进程的opt。
与unix上的ps类似,jps:用于显示本地java进程。它可以检查本地运行的几个java程序,并显示它们的进程号。
Jstat:是监控虚拟机内存的强大工具。它可用于监控虚拟机内存中各种堆和非堆的大小及其内存使用情况。
jmap:打印出java进程内存中的所有lsquo(使用PID);对象。情况(例如,产生的对象及其数量)。
Jconsole:是一个javaGUI监控工具,可以以图形化的形式显示各种数据。并且可以通过远程连接监控远程服务器VM。
以下是这些JVM内存监控工具的详细介绍:
从最简单的jstat工具开始:我想很多人在unix系统中都用过ps命令。这个命令主要用来显示当前的系统进程,哪些进程在那里,以及它们的id。jps也是如此。它的功能是显示当前系统的java进程及其id号。通过它,我们可以检查我们启动了多少个java进程(因为每个java程序都会独占一个java虚拟机实例)以及它们的进程号(为后面的程序做准备),并通过opt检查这些进程的详细启动参数。
用法:在当前命令行下键入jps(需要JAVA_HOME,如果不需要,在修改后的程序目录下键入)。
接下来是jstat。我这次调优liferayportal的原因是,默认情况下,当有更多并发用户时,Liferay将生成permoutofmomery异常。虽然解决得很快,但它发现了监控虚拟机内存使用的重要性。通过谷歌,工具jstat很快被发现。
jstat工具特别强大,有许多选项,它可以详细检查堆中每个部分的使用情况和加载的类的数量。使用时,添加查看流程的流程id和所选参数。下面详细描述了每个参数的含义。
Jstat-classpid:显示加载的类的数量和占用的空间等信息。
Jstat-compilerpid:显示实时编译的虚拟机数量等信息。
Jstat-gcpid:可以显示gc的信息,查看gc的次数和时间。其中,* * *五项为younggc的个数、younggc的时间、fullgc的个数、fullgc的时间、gc的总时间。
jstat-gccapacity:可以显示VM内存中三代(年轻、年老、彼尔姆)对象的使用情况和占用情况,例如PGCMN显示彼尔姆的最小内存使用情况,PGCMX显示彼尔姆* * *,PGC是目前彼尔姆新生成的内存使用情况,PC是彼尔姆之前的内存使用情况。其他人可以根据这个类比,OC是旧的纯粹占用。
jstat-gcnewpid :新对象的信息。
jstat-gcnewcapacitypid :新对象信息及其占用情况。
jstat-gcoldpid :旧对象信息。
jstat-gcoldcapacitypid :旧对象信息及其占用率。
jsat-gcpercapacitypid : perm对象信息及其占用情况。
Jstat-utilpid:统计gc信息统计。
Jstat-printcompilationpid:当前虚拟机执行的信息。
除了上述参数外,还可以同时添加两个数字,例如jstat-printcompilation30242506每250毫秒打印一次,共打印6次,还可以添加-h4,每三行显示一次标题。
jmap是一个JVM内存监控工具,可以输出内存中的所有对象,甚至可以将VM中的堆输出为二进制的文本。使用方法jmap-组织id。如果可以使用SHELLjmap-isto IDA . log将其保存在文本中,一段时间后,可以使用文本比较工具来比较GC恢复了哪些对象。JMAP-dump:format=b,file=String3024可以将3024进程的内存堆输出到字符串文件。
jinfo:这个JVM内存监控工具的使用比较简单,就是可以在运行时输出和修改java进程的运行参数。用法是jinfo-optpid,例如,要检查MaxPerm大小为2788,可以使用jinfo-flagMaxPermSize2788。
jconsole是用java编写的GUI程序,用于监控虚拟机和远程虚拟机。它非常容易使用,功能强大。由于它是一个图形用户界面程序,这里不再详细描述。如果不是,可以参考孙的公文。
用法:只需在命令行上键入jconsole并选择进程。
以上内容就是如何实现JVM内存监控工具的使用。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识储备,请关注行业信息渠道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/44231.html