Mercurial > hg > heapstats
view README @ 281:1e8de29f38c4 default tip
Bug 3791: HeapStats agent should show warning if it run on JDK 8u262 or later
Co-authored-by: KUBOTA Yuji <kubota.yuji@gmail.com>
Reviewed-by: ykubota
https://github.com/HeapStats/heapstats/pull/154
author | Yasumasa Suenaga <yasuenag@gmail.com> |
---|---|
date | Sun, 19 Jul 2020 12:52:57 +0900 |
parents | 898008f06beb |
children |
line wrap: on
line source
HeapStats =================== HeapStats is Java troubleshooting tool. This tool suites of three applications. * Agent * HeapStats JVMTI agent for gathering JavaVM runtime information continuously. * Analyzer * HeapStats JavaFX GUI analyzer for analysis by various graphs. * CLI * HeapStats commandline analyzer. Also two supplemental applications are available: * MBean * MBean for operating HeapStats Agent via JMX * See [mbean/README.md](mbean/README.md) for more details * Attacher * Attach JVMTI agent to existing process * See [agent/attacher/README.md](agent/attacher/README.md) for more details # Agent # Agent gathers various JavaVM runtime information such as the below. * The amount of instances and total size per live object * The reference relationship of objects on Java Heap * Thread condition * Process information More detailes are [here](http://icedtea.classpath.org/wiki/HeapStats/information_to_be_collected). ## Requirements ## * Linux x64 / x86_64 / AArch32 * Oracle JDK / OpenJDK 6u18 or later **NOTE: For JDK 8u262 or later, we recommend to use built-in agent, JDK Flight Recorder, instead of HeapStats** ## How to use ## You can attach HeapStats agent by any way of the following: * `-agentlib:heapstats[=conf]` * JVM will load `libheapstats.so` from library path. * `libheapstats.so` should be resolved via `LD_LIBRARY_PATH` or library path (e.g. `/etc/ld.so.conf`) * `-agentpath:/path/to/heapstats[=conf]` * JVM will load `libheapstats.so` from specified path * `heapstats-attacher` * Attach to existing process * Recommend to use on JDK 8 or earlier * `jcmd <PID> JVMTI.agent_load /path/to/libheapstats.so` * Attach to existing process * `JVMTI.agent_load` has been introduced in Java 9 * Recommend to specify with absolute path ## Build requirements ## * GNU make * Apache Ant * GCC * JDK 7 or later * Intel TBB * NetSNMP * GNU Binutils See also: [HeapStats Builder](https://github.com/HeapStats/heapstats-builder) # Analyzer # Analyzer is GUI application for analyzing data which are collected from Agent. Also it supports JDP autodiscovery and Error Report Transmission. ## Requirements ## Linux x64 or Windows x64 ## How to use ## Run `<analyzer dir>/bin/heapstats-analyzer` (Linux) or `<analyzer dir>\bin\heapstats-analyzer.bat` (Windows) ### JDP ### The automatic discovery on JDP (Java Discovery Protocol) can be enabled by the following JVM options. ``` -Dcom.sun.management.jmxremote.port=<JMX port> -Dcom.sun.management.jmxremote.authenticate=<true|false> -Dcom.sun.management.jmxremote.ssl=<true|false> -Dcom.sun.management.jmxremote.autodiscovery=true ``` JDP sends a packet per 5 seconds by default. If Analyzer can NOT receive a JDP packet from a monitoring JVM instance, color of its name on the screen will become orange. ### Error Report Transmission ### Oracle JDK can provide a real-time detection of JVM crash, but OpenJDK DOES NOT support it. In addition, Oracle JDK needs to be run with the following options. ``` -XX:+TransmitErrorReport -XX:ErrorReportServer=<address>:<port (4711 by default)> ``` **NOTE: Error Report Transmission has been removed since JDK 12** ## Build requirements ## * Apache Maven * JDK 13 or later ## Add / Create Plugin HeapStats Analyzer supports custom plugin. See [SamplePlugin](https://github.com/HeapStats/SamplePlugin) for details. # CLI # If you want to analyze data which are collected by HeapStats Agent on CUI environment, you can use HeapStats CLI. ## Requirements ## Linux x64 or Windows x64 ## How to use ## Run `<cli dir>/bin/heapstats-cli` (Linux) or `<cli dir>\bin\heapstats-cli.bat` (Windows) If you want to see options, please run `heapstats-cli` with `-help`. ## Build requirements ## * Apache Maven * JDK 13 or later # Documents and Binaries # More detailes and released binaries are available on icedtea community: http://icedtea.classpath.org/wiki/HeapStats # Build all # ``` $ configure --with-jdk=/path/to/jdk13 $ make ``` # Testing # * Basic test is [agent/test](agent/test) * Race condition tests are available on [race-condition](https://github.com/HeapStats/race-condition) # Contributing # Contribution are most welcome! HeapStats is an open source project under the GNU General Public License, version 2. See [CONTRIBUTING.md](CONTRIBUTING.md) for details. # License # [GNU General Public License, version 2](COPYING)