The full GC is found very frequently in the project. Reached 13 times per minute. I suspect there might be a memory leak. So in the evening to find the memory leak data.
Long-term memory consumption and resulting system instability there are generally two possible:
1. Objects are created and cached, and a large number of new objects are created before the old objects are released, allowing long-term memory high occupancy.
- Performance: Memory is constantly consumed, at high levels it is difficult to return to the low, there are a large number of objects are constantly created, after a long time to be recycled. For example, when a large number of paged query data is saved in HttpSession, and the session timeout for HttpSession is set too long (for example: 1 days), a large number of new objects are generated the next day before the old object is released.
- Workaround: The shared objects can be cached by pooling mechanisms, avoid their creation, cached temporary objects should be released in a timely manner, and the other way is to expand the system's memory capacity.
2. Another scenario is a memory leak problem
- The performance is: Memory recovery low point is rising (in a straight line to each memory recovery, then it is a rising line), the frequency of memory recovery is also getting higher and higher, and the memory consumption is increasing, resulting in the "out of Memory Exception" system exception.
- Workaround: Locate those classes or objects that have memory leaks and modify them to avoid memory leaks. The method is: After a period of testing, monitoring, if a class of the number of objects repeatedly hit a new high, even after the JVM full GC still the number of drops, these objects are basically a memory leak object.
Then use Jconsole to monitor the WebLogic JVM.
Since both Jconsole and WebLogic are on the same Windows machine, the configuration steps are as follows:
1. First, you will configure the WebLogic startup script.
D:\weblogic\domains\cebbch_domain\bin\startWebLogic.cmd
in which to find
After set java_options=%save_java_options%, add a word and change to:
Set java_options=%save_java_options%-dcom.sun.management.jmxremote
2. Found in WebLogic's console
Domain > Security > Enable anonymous admin lookup and hook up the squares in front of them
3. Then start Jconsole, locate the process number of the WebLogic server, and the connection will be successful. Otherwise, you can only connect to Sun.tools.jconsole.Jconsole.
At this point, Jconsole has been able to successfully connect WebLogic.
Configuring methods for monitoring WebLogic using Jconsole