营销型网站建设测验题,参考消息官网手机网,网站运营的主要工作内容,外贸营销主题怎么写可以同时运行多个JFR记录#xff0c;并且每个JFR记录都可以使用不同的配置#xff0c;你可以使用不同的JFR记录去捕获不同的事件集。但是#xff0c;为了使JFR内部逻辑更加精简#xff0c;生成的记录始终包含当时活动的所有记录的所有事件的并集。这意味着#xff0c;运行…可以同时运行多个JFR记录并且每个JFR记录都可以使用不同的配置你可以使用不同的JFR记录去捕获不同的事件集。但是为了使JFR内部逻辑更加精简生成的记录始终包含当时活动的所有记录的所有事件的并集。这意味着运行多个JFR记录得到的记录信息会多余实际所需的信息。
通过集成到JMC里的Flight Recorder插件来使用JFR是最简单直观的。该插件允许通过直观的GUI使用JFR的功能。有关通过JMC来使用JFR的一些详细说明请查看JMC官方文档的Flight Recorder插件部分
本文介绍允许和管理JFR记录更高级的用法
使用命令行使用诊断命令配置JFR记录自动创建JFR记录安全故障排除
使用命令行 Command Line
在程序启动时你可以在命令行通过java的-XX:StartFlightRecording选项来开始并配置一个JFR记录然后声明-XX:FlightRecorder选项来启用JFR因为JFR是一个商业特性因此还需要声明-XX:UnlockCommercialFeatures选项
下面这个例子就说明了如何运行MyApp并且同时开启一个60秒的JFR记录该记录将保存到一个名为myrecording.jfr的文件
java -XX:UnlockCommercialFeatures -XX:FlightRecorder -XX:StartFlightRecordingduration60s,filenamemyrecording.jfr MyApp使用诊断命令Diagnostic Command
执行诊断命令最简单的方法是使用jcmd工具(位于java安装目录中)。要发出命令必须将JVM进程号(或主类的名称)和实际的命令作为参数传递给jcmd。
例如在pid为5368的正在运行的java进程上开启一个60秒的JFR记录并将其保存到当前目录下命名为myrecording.jfr的文件中
jcmd 5368 JFR.start duration60s filenamemyrecording.jfr查看所有正在运行的Java进程列表使用jcmd命令并且不加任何参数。查看对于一个正在运行的Java程序可以使用的所有命令将help作为pid(或者主类名称)之后的诊断命令。
与JFR相关的命令包括
JFR.start 开始记录JFR.check 检查指定进程的所有运行中的JFR记录的运行情况包括JFR记录id文件名持续时间等JFR.stop 停止指定id的JFR记录(默认情况下停止id为1的记录)JFR.dump 转存指定id的JFR记录时间为到目前为止收集的数据(默认情况下转储id为1的记录的数据)
配置JFR记录
您可以通过许多其他方式配置JFR记录。无论您如何启动JFR记录使用命令行或者诊断命令他们的工作方式都是相同的。
设置大小和寿命
maxsizesize
附加单位为k或Km或Mg或G或者不指定单位默认为1byte字节maxageage
附加单位为s秒或m分或h小时或d天数如果同时设定了大小和寿命限制则在先达到其中一个限制时将删除数据
设置延迟
在安排JFR记录时你可能想要在实际开始前添加一个延迟。例如当从命令行运行时您可能希望应用程序在开始录制之前启动或达到稳定状态。要实现这一点请使用delay参数
delaydelay
附加单位为s秒或m分或h小时或d天数设置压缩
尽管录制文件格式非常紧凑但您仍然可以通过将其添加到ZIP存档中进一步压缩。要启用压缩请使用以下参数
compresstrue请注意压缩需要CPU资源这会对性能产生负面影响。
自动创建JFR记录
当使用默认记录运行时您可以配置JFR以便在出现某些指定情况时自动将当前内存中的记录数据保存到文件中。如果还使用了磁盘存储库则还将包括磁盘存储库中的当前信息。
退出时创建录音
要在每次JVM退出时将记录数据保存到指定路径请使用以下选项启动应用程序
-XX:FlightRecorderOptionsdefaultrecordingtrue,dumponexittrue,dumponexitpathpath设置应该保存记录的路径。如果指定目录则在该目录中创建一个以日期和时间作为名称的文件。如果指定文件名则使用该名称。如果不指定路径JFR记录文件将保存在当前目录中。
使用触发器创建录音 您可以使用JMC的控制台来设置触发器。触发器是一种规则只要规则指定的条件为真它就会执行操作。
例如您可以创建一个规则在堆大小超过100 MB时触发JFR记录。JMC中的触发器可以使用通过JMX MBean公开的任何属性作为规则的输入。 在JMX控制台的触发器选项卡定义触发器有关如何创建触发器的详细信息请参阅JMC官方文档。
安全
JFR仅用于诊断的目的JFR记录文件可能包含机密信息如Java命令行选项和环境变量。在存储或传输JFR记录文件时要像诊断核心文件或堆数据转存一样小心。
使用JFR的各种方法的安全权限
Method方法Security安全Command line命令行每一个可以访问Java程序命令行的人都必须是可信任的Diagnostic commands诊断命令只有Java进程的所有者可以使用jcmd来控制该进程。JMC客户端JMC客户端使用JMX访问JVM。
故障排除
通过使用以下选项之一启动JVM可以从Java Flight Recorder收集大量诊断信息
-XX:FlightRecorderOptionslogleveldebug-XX:FlightRecorderOptionslogleveltrace
附JFR命令参考
Command-Line Options 命令行选项 当您使用java命令行启动你的Java应用程序您可以指定选项以启用JFR、配置其设置以及开始JFR记录。以下命令行选项特定于Java Flight Recorder
-XX:|-FlightRecorder-XX:FlightRecorderOptions-XX:StartFlightRecording
这些命令行选项仅在JDK的商业许可证中可用。要使用它们还必须指定-XXUnlockCommercialFeatures选项。
注使用 -XX 选项的前提是您对系统有透彻的了解如果这些命令使用不当可能会影响系统的稳定性或性能。 -XX 选项是试验性的随时可能更改。
Diagnostic Command Reference 诊断命令参考 这是对可用于控制JFR的诊断命令和每个命令可用参数的描述。也可通过运行 jcmd 命令和指定的进程标识符后跟 help参数和命令名获取帮助信息。例如若要获取 JFR.start命令的帮助信息请运行以下命令
jcmd 5361 help JFR.start要获取JVM可用的诊断命令的完整列表不指定命令名即可即jcmd 5461 help 与JFR相关的诊断命令包括
JFR.startJFR.checkJFR.stopJFR.dump
JFR.start 开启
参数说明类型默认nameJFR记录名称Stringsettings服务器端模板Stringdefaultrecording开始默认录制BooleanFalsedelay延迟开始记录Time0sduration记录持续时间Time0s表示“永远”filename生成的记录文件名StringcompressGZip压缩生成的记录文件BooleanFalsemaxage缓冲区数据的最长期限Time时间0s表示“无年龄限制”maxsize缓冲区的最大大小字节Long长0表示“无最大大小”
JFR.check 检查
参数说明类型默认name记录名称Stringrecording记录IDLong1verbose打印详细数据BooleanFalse
JFR.stop 停止
参数说明类型默认name记录名称Stringrecording记录IDLong1discard丢弃记录数据Booleancopy_to_file将记录数据复制到文件Stringcompress_copyGZip压缩“复制到文件”的目标BooleanFalse
JFR.dump 转存
参数说明类型默认name记录名称Stringrecording记录IDLong1copy_to_file将记录数据复制到文件Stringcompress_copyGZip压缩“复制到文件”目标BooleanFalse