Dynamic Workload Console memory leak causes the application to crash - dynamic

With Dash 3121 CP3 in Dynamic Workload Console v9.3 fp3 memory leak causes the application to crash. How can I solve it?

to solve this problem add the Java Virtual Machine (JVM) Argument:
-Xgc: classUnloadingKickoffThreshold=1000
Note that to WebSphere Application Server, the JVM requires a restart for the argument to take effect.

Related

How to get array allocation with JProfiler

My spark java application is running on remote machine in our internal lab. To analyse the memory consumption of remote application, attached the remote application pid to JProfiler by using the 'attach mode' (with help of jpenable) from my local machine.
After attaching the remote application to JProfiler in local machine, 'Allocation tree' is showing only non-array object allocations. I want to know array allocations also from my local machine.
Please help me to know about the array allocation with JProfiler.
Thanks,
Nagendra R
When you attach to a running JVM with the JProfiler GUI, the session startup dialog has an option "Record array allocations". It is not selected by default, because it requires a large amount of reinstrumentations which can be very slow.
If array allocation spots are important for your analysis, it's better not to use attach mode but to pass the VM parameter for profiling as given by
Session->Integration wizards->New remote integration
Then the instrumentation is done while the classes are loaded.

How to get complete memory usage statistics

My spark application is running on remote machine in our internal lab. To analyse the memory consumption of remote application, attached the remote application pid to JProfiler by using the 'attach mode' (with help of jpenable) from my local machine.
After attaching the remote application to JProfiler in local machine, the JProfiler showing only 5% of memory consumption of the remote machine but when we ran the 'top' command on remote Centos machine, the 'top' command showing the 72% of memory consumption. And I am unable to find the whole 72% consumption with JProfiler application.
Please help me to get the whole memory consumption (i.e., 72% of memory usage) statistics by using the JProfiler application.
top shows memory reserved by the JVM, not the actually used heap, so you cannot compare the two values.
In addition, the JVM uses native memory that does not show up in the heap. A Java profiler cannot analyze that memory.

How to monitor JVM without installing JDK

I want to monitor JVM performance on my production environment. I have installed only JRE, not JDK, Hence i can't use jstat, jconsole etc. to monitor the JVM performance.
Can somebody please help to understand how can i monitor JVM performance in this scenario?
Is there any way to achieve this?
(please note that i don't want to monitor it remotely through JMX or something else. i would like to install local agent in each machine which will send the metrics to server at the interval of 1 minute.)
Thanks,
KS
If you manage to get JMX up and running on your VM (from the comment), you can then use jmxterm or jmxfetch to push these JMX metrics into a metrics system (like graphite or Datadog).
If you have enough patience and time to write, you can probably have a look at JVMTI. You can write your code in C/C++ and run it along your Java Process and you can gather information about the JVM without affecting it.
Another simple and naive way is to start your VM with a javaagent written in java but JVMTI is even better than that. The most crucial difference between the javaagent and JVMTI app is derived from the loading mechanics. While the agents are loaded inside the heap, they are governed by the same JVM. Whereas the JVMTI agents are not governed by the JVM rules and are thus not affected by the JVM internals such as the GC or runtime error handling.
You can even give Java Mission Control a try if you're using JDK7 or above :)
Jolokia is a java agent you can use to expose JMX as http. Run jmx2graphite and get those metrics into Graphite. The link includes instructions on Graphite installation (10 minutes)

Client VM not inlining?

I am on a Linux machine and use openjdk7. After finding my code was executed twice as fast when using the -server option, i dove deeper into what was happening inside the VM and found that the Server VM inlines my code like crazy, while the Client VM does not inline at all.
Is this normal behavior?
It is normal behaviour.
The server JVM optimises the code more heavily. This uses more CPU on startup and more memory when it is running.
The client VM is designed to quick start up e.g. applets. It is the default on Windows 32-bit JVMs only.

Get “Could not create the Java virtual machine” error running StarTeam 2008 Release 2 client

Why didn't StarTeam 2008 Release 2 Client install correctly on my machine? Whenever I try to launch it, I get a “Could not create the Java virtual machine” error.
Rather than being a problem locating the Java Virtual Machine, as I’d previously thought, turns out it’s a memory allocation issue.
In StarTeamCP.stjava, the default option set is -Xmx1024m. My machine doesn’t have a gig of RAM to spare for a Java VM, hence the error.
By setting it to -Xmx512m, I was able to get up and running.
See also my blog entry about this.