What is the impact to put -d64 into the Liferay 5.2, weblogic 10 over Solaris environment?
What is the impact of choosing Xms=Xmx=8GB and PermGen=1g, in that setup.
[Hands on experience: I see some Null exceptions occasionally, but the application is on and I don't see problems data, or visually. It's a test environment, not any production. ]
Thank you for any comment
These options impact performance so there will not be any functional impact to your application.
-d64 explained : What impact, if any, does the -d64 switch have on Sun JVM resident memory usage?
Xms=Xmx=8GB, PermGen=1g : These are Heap Size settings, these will influence the GC algorithm running time.
Related
I have a RESTful service deployed on IBM WAS 8.5.5.x, the application is functioning correctly and performing well most of the time, except occasionally (approx. once/twice a week) the JVM size is not going down, I don't see the typical 'saw tooth' pattern for JVM heap utilization.
When the heap was high, I forced a Heap Dump to look at what's holding up JVM space and all I see are related to IBM classes, can't figure out what my application could be doing wrong.
what could be using/holding these high no. of HashMap within IBM WAS ?
Leak Suspect in IBM Memory Analyzer
HashMap$Node - expanded to show its children
com.ddtek.jdbc - is a JDBC compliant library lib location
I've been having trouble with my webapp. My heap memory peak up to nearly to max size for about 30 mins and the it crashes my system.
I have googled and tried nearly everything. I have been monitoring my heap memory using Java VisualVM, jconsole and Oracle Java Mission Control(I know it's outdated).
So what I have tried until know:
Monitored heap memory to see if there is a specific thread running at specific time and it peak the memory. (This is not the case as it doesn't specifically peak at specific times.)
2.Increased my heap memory size.
Followed instructions from:
http://karunsubramanian.com/websphere/top-4-java-heap-related-issues-and-how-to-fix-them/
So my questions are:
Is there any tool that can help me see if I have a memory leak and from where?
Has anyone experienced the same issue.
Any pointers on how to manage this kind of problems.
Btw I am quite new in this area so please be kind.
Tomcat 7 on Windows Server 2012
JAVA 7
If you need more information please comment.
You need to configure the jvm to create a heapdump when an outofmemory occurs.
-XX:+HeapDumpOnOutOfMemoryError
Then analyze the heap dump to find what classes are using the memory
my application is running on jboss 6.1, and after few days my applications runs very slow., this is the situation I am facing every week,. for this I am killing java and clearing the temp and work folders and restarting the jboss again. Is there any other ways to clean the memory / manage the application. Kindly give me the suggestions for Linux and windows platforms.
Kindly help any one.
Thanks & Regards,
Sharath
Based on your RAM size of the system you can increase following parameters in run.conf(for linux) or run.conf.bat(for windows):
XMS, XMX, MaxPermSize.
-Xms512M -Xmx1024M -XX:MaxPermSize=128M
The flag Xmx specifies the maximum memory allocation pool for a Java Virtual Machine (JVM), while Xms specifies the initial memory allocation pool.
MaxPermSize are used to set size for Permanent Generation
The Permanent Generation is where class files are kept. These are the result of compiled classes and jsp pages. If this space is full, it triggers a Full Garbage Collection. If the Full Garbage Collection cannot clean out old unreferenced classes and there is no room left to expand the Permanent Space, an Out‐of‐ Memory error (OOME) is thrown and the JVM will crash
Hope you are aware of these three flags.
For some strong reason, I do NOT have access to our JVM based Web - App servers when running LIVE Production and only way is the task of Monitoring the Activity Offline Only.
Hence I or Our-Moron-Team cannot Monitor the JVM based GC for any irregular memory usage.
Hence I ask the Experts is there any way by using JRE based Settings to setup during initial startup.
This settings have to constantly write to log file on hourly basis.
This Log file could be analyzed Offline using Tool Visual JVM and easily get to know the Reason of Crash / irregularity behavior by the charts provided.
Can some body help me with the JVM settings.
with regards
karthik
Garbage Collection activity
You will need to activate the GC logs using the following JVM options : -Xloggc:/path/to/logfile/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps.
Then you can use tools such as GCViewer (free, open-source), HPJmeter (free) or JClarity Censum (commercial) to analyse the logfile afterwards.
Thread Dumps
You can use VisualVM using the TDA (Thread Dump Analyzer) plugin. TDA is also available as a standalone application if you want to visualize Thread Dumps afterwards.
Heap Dumps
You can use jhat (standard tool) of Eclipse Memory Analyzer to visualize a memory dump.
What about Memory Leaks
If you have a long-running GC log, you can give it to Censum that will tell you if your application suffer from a memory leak. Once you have this first information, you can take some snapshot and analyze them using Eclipse MAT or NetBeans Profiler to find out which objects are leaking.
I am using weblogic 10.3.6 with JRockit installed . I am using a 64 bit system with Linux as OS. I have an adf application installed in it . There are only a couple of users using the application . But the server machine where WLS is installed keeps going down every week causing out of memory . so we have to restart it every week. When i was looking through I found that WebLogic can be made more stable by adjusting the heap size and other memory arguments .
Example: --Xms256m --Xmx512m MaxPermsize as 128m
My question is
What are these arguments ?
How are these arguments related to one another?
How do I determine the value for these arguments?
What can be other causes for out of memory issue?
Thanks,
Rakesh
Xms and Xmx are the minimum and the maximum heap (essentially where the objects are stored) size the java program can use.
In your case the java program is the WebLogic server on which your application is deployed. By default the Xms and Xmx values set by WebLogic server are : 256m and 512m.
Looks like your application needs more than 512MB heap memory. So you need to increase the maximum heap size (Xmx) to avoid frequent OutOfMemory error.
The new value of Xmx can be 1024m or more. You (or Performance team, if there is one.) have to do rigorous Performance, Scalability, Reliability testing with your application and with different Xmx values to determine what is the best for the application.
Setting the Memory Arguments (i.e Xms, Xmx) can be done at the script level (if you are using startWebLogic.sh/startManagedWebLogic.sh scripts to start the servers).
Script Level Changes:
Open setDomainEnv.sh and search for 'IF USER_MEM_ARGS the environment variable is set' and in the next line insert USER_MEM_ARGS="-Xms256m -Xmx1024m"
You can even change this setting from server to server by using SERVER_NAME variable which holds the server that is being started. For example to have this setting only for non-Admin servers, insert [ "${SERVER_NAME}" != "AdminServer" ] && USER_MEM_ARGS="-Xms256m -Xmx1024m"
Console Changes (Only if you use Admin Console to start the managed servers):
Login to AdminConsole–>Environments—>Servers—>—>Configuration—>ServerStart—>Arguments:(TextArea).
Enter : -Xms256m -Xmx1024m and Save.
Oh, btw JRockit does not have any concept of PermSize.
Get basic knowledge of the JVM parameters.
Simply setting a couple of JVM memory parameters to higher values won't help but only move the error into the future. You have to analyze the application to find out the real problem. JRockit comes with a very good memory analyzing tool Mission Control. Watch the demo, which will help to find out which part of your application causes the Out Of Memory error.