- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Start profiling
- IDE integration
- Java server integration wizard
- Attach profiler to a running application
- Remote profiling
- Docker
- Enabling profiling manually
- Startup options
- Connect to profiled application
- Profiling troubleshooting
- Profiling overhead: how to reduce or avoid
- Solving performance problems
- CPU profiling
- Threads
- Deadlock detector
- Memory profiling
- Garbage collection
- Monitor profiling
- Exception profiling
- Probes: monitor events of various kinds
- Performance Charts
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Summary, snapshot annotation, automatic deobfuscation
- Time measurement (CPU time, wall time)
- Filters
- Snapshot directory customization
- Export of profiling results to HTML, CSV, XML, plain text
- Profiler Java API
- Profiler HTTP API
- Command line tool to control profiling
- Settings
- FAQ: How to profile in my scenario?
Profiling troubleshooting
If the profiled Java application is missing in Monitor Applications list:
Application is not running
Ensure the application you want to profile is running. Restart the application if has been shut down. If the application fails to start or terminates abnormally, check the application's output, logs etc. for possible errors.
Application is running without the profiler agent
-
If you run your application and profiler UI on the same machine but under different users, please run an application and UI under the same user or start your application with profiler agent. Java applications running under different user might be missing.
-
If you use remote profiling with SSH access discovery method, login with the same SSH user under which your application runs or start your application with profiler agent.
-
Start your application with profiler agent and connect to it when it is running.
Application is already running with the profiler agent
-
Ensure that startup option
listen
is properly configured.By default, for security reasons the profiler agent binds the socket only to
localhost
that might resolve to127.0.0.1
or::1
. This disables a direct remote connection to the agent via external network interfaces, but connection is still possible via port forwarding e.g. an SSH tunnel.If you want to allow direct connect to the remote application via host and port, you should specify the startup option
listen=all
orlisten=<IP>
. -
If the application is up and running, ensure that the network connection is not blocked by a firewall, an antivirus etc. Check both the remote machine side and the local machine side. The profiler agent port must be allowed.
Please note, that agent port is not one of the ports you may use to communicate with the profiled application or server, like HTTP 8080. Instead, it's a special dedicated port used solely by the profiler.
By default, the profiler agent port is allocated in the range
10001-10010
or a random one is used if all ports in this range are busy. The port can also be specified explicitly with the startup optionport
. If the profiler agent port is not in the default range10001-10010
, explicitly specify the port in the connect dialog ashost:port
.If you are unsure which port is used, look at the profiler agent log on the remote machine. The profiler agent log file is
<user home>/.yjp/log/<application name>-<PID>.log
, where<user home>
corresponds to the account under which the profiled application is started.If you are uncertain about the log file path, you may find it in the profiler agent's output to stderr:
[YourKit Java Profiler 2021.11-b123] Log file: <full path to the log file>
Check agent status in a web browser
The profiler agent status can be checked by opening
the URL https://localhost:<agent port>
for a local profiled application
or https://<remote host>:<agent port>
for a remote profiled application
in a web browser.
The remote application status can be checked this way
if a direct connection was allowed with the help of the agent startup option
listen
.
If profiler agent uses self-signed SSL certificate (the default option), then all modern web browsers like Chrome, FireFox or InternetExplorer will show a security warning, explaining the risks. You can safely accept the risks and proceed further.
On the opened page you should see the version of the profiler agent you have connected to. Something like:
YourKit Java Profiler 2021.11-b123
Enable extended diagnostics in the profiler UI log file
To help YourKit support investigate a network connectivity issue,
please enable extended log messages in the profiler UI log file by
adding the following line to <user home>/.yjp/ui.ini
:
-Dyk.ssh.debug=true