- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 jcmd VM.set_flag 选项进行试验。但是遇到一个错误,说“只能设置‘可写’标志”。什么是可写标志?
获取我的进程号:
XXX@XXX-Air:~/javacode$ jcmd -l
6294 Test
6295 jdk.jcmd/sun.tools.jcmd.JCmd -l
尝试更改 vm 标志:
XXX@XXX-Air:~/javacode$ jcmd 6294 VM.set_flag ConcGCThreads 4
6294:
only 'writeable' flags can be set
XXX@XXX-Air:~/javacode$ jcmd 6294 VM.set_flag MaxNewSize 1G
6294:
only 'writeable' flags can be set
编辑:它适用于可管理的标志,下面是成功的命令。
XXXX@XXX-Air:~/javacode$ jcmd 11441 VM.flags -all | grep MinHeapFreeRatio
uintx MinHeapFreeRatio = 40 {manageable} {default}
XXXX@XXX-Air:~/javacode$ jcmd 11441 VM.set_flag MinHeapFreeRatio 45
11441:
Command executed successfully
XXXX@XXX-Air:~/javacode$ jcmd 11441 VM.flags -all | grep MinHeapFreeRatio
uintx MinHeapFreeRatio = 45
最佳答案
可写标志标记为{manageable}
。
您可以使用 jcmd 12345 VM.flags -all
列出所有标志。然后您可以 grep 寻找可管理的(在我的 Oracle jdk8 VM 上):
$ jcmd 12345 VM.flags -all | grep manageable
intx CMSAbortablePrecleanWaitMillis = 100 {manageable}
intx CMSTriggerInterval = -1 {manageable}
intx CMSWaitDuration = 2000 {manageable}
bool HeapDumpAfterFullGC = false {manageable}
bool HeapDumpBeforeFullGC = false {manageable}
bool HeapDumpOnOutOfMemoryError = false {manageable}
ccstr HeapDumpPath = {manageable}
uintx MaxHeapFreeRatio = 100 {manageable}
uintx MinHeapFreeRatio = 0 {manageable}
bool PrintClassHistogram = false {manageable}
bool PrintClassHistogramAfterFullGC = false {manageable}
bool PrintClassHistogramBeforeFullGC = false {manageable}
bool PrintConcurrentLocks = false {manageable}
bool PrintGC = false {manageable}
bool PrintGCDateStamps = false {manageable}
bool PrintGCDetails = false {manageable}
bool PrintGCID = false {manageable}
bool PrintGCTimeStamps = false {manageable}
关于java - jcmd VM.set_flag,哪些标志是可写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46785304/
运行以下命令列出所有可用的 jvm 标志: jcmd 24468 VM.flags -all | less -N 然后在最后一列中,找到以下值(在 linux 上使用 JDK1.8): * produ
我尝试使用 jcmd 进行堆转储(从 git bash 控制台窗口): $ /c/Program\ Files/Java/jdk1.8.0_202/bin/jcmd 25156 GC.heap_d
为基于 JVM 的服务确定 docker 容器的尺寸是很棘手的(众所周知)。我很确定我们的容器尺寸略微不足,并且想澄清一些与我们在监控时看到的特定 jcmd( native 内存跟踪器)输出有关的问题
jcmd 实用程序提供多个诊断命令: https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.
我在 Ubuntu Linux 机器上使用 Java1.8。使用以下命令创建线程转储: jcmd 1670 Thread.print > Thread.jfr 将文件复制到本地 MAC 机器并双击在
当我启动 jcmd 时,它会显示除 Jetty 之外的所有 java 进程,为什么? JCmd: [root@test_app_bm 2015_06_01_18_19_47_13098]# /usr/
我目前正在调查压缩类空间问题。我知道问题出在哪里,但在调查时,我注意到 jstat -gc ... 和 jcmd ... GC.heap_info 给出了不同数量的元空间和压缩类空间容量及用途: ▶
我正在尝试使用 jcmd VM.set_flag 选项进行试验。但是遇到一个错误,说“只能设置‘可写’标志”。什么是可写标志? 获取我的进程号: XXX@XXX-Air:~/javacode$ jcm
我有一个在 Docker 容器内的 Java 8 上运行的 Java 应用程序。该过程启动了一个 Jetty 9 服务器,并且正在部署一个 Web 应用程序。传递以下 JVM 选项:-Xms768m
当我运行jcmd PID help GC.heap_dump时,帮助清楚地表明将调用完整GC,除非指定-all标志: GC.heap_dump ... Impact: High: Depends on
在使用jcmd监控java进程时,有一个命令ManagementAgent.start。 检查手册页/oracle 文档/谷歌,没有找到任何描述。 问题是: 它的用途是什么? 最佳答案 此命令启动远程
jcmd 是一个很有前途的工具,可以重新组合 jmap、jsp 等实用程序... 你可以找到introduction和 man page但它仍然很轻。 在网络上,我发现显然存在的命令,如 GC.hea
我正在尝试使用以下 2 个命令进行堆转储 jcmd $pid GC.heap_dump/tmp/filename.dump jmap -dump:format=b,file=/tmp/filename
$ jcmd -l 418 sun.tools.jcmd.JCmd -l $ jstat -gcutil -t 10 250ms 1 10 not found 我知道 bug在
我想使用 java.lang.management.MemoryUsage 监视代码的堆使用情况。在下面的示例中,我在 HashSet 中创建了一堆条目,然后检查堆使用情况。我期望看到伊甸园空间的已用
我是一名优秀的程序员,十分优秀!