Solving Your WebLogic Out Of Memory and Server Hanging Issues
It is not uncommon for WebLogic applications to show performance issues from time-to-time. This is a natural evolution for many applications especially when you are in a growth period of the application; by adding new users to the system or adding new features and functionality. The developer who wrote the code is not always able to predict how the application will be used or handle the load. Then net result is a performance issue. Some of the commonly seen are slow response times and application crashes resulting in an Out Of Memory error.
The truth of the matter is that most of your performance issues are solvable. There is a technical reason why the systems function the way they do. The more stability you bring into the environment, the more time you will have to focus on solving the IT challenges that will give the company the biggest return on investment.
In order to solve these issues, there must be technical initiatives focused on addressing the performance issues and help reduce the amount of downtime in the environments. Start your efforts with the fundamentals. The following areas are where you should consider spending your initial effort. Consider creating small groups to work independently on the following areas.
JAVA: The foundation of the application server. One of the best places to get data about a poorly performing application is to get data from the application itself. Get thread dumps from your applications and profile the memory.
Networking: It is hard to image a modern application that does not use a network. When you are looking for causes to your issues do not forget the network. Putting a NIC card in promiscuous mode or TCP dumps may help identify network related issues. It is also a good idea to look at all layers in the network to include Load Balancers, Network Interface Cards (NICS) on the boxes, firewalls and anything that’s responsible for routing traffic to your applications.
N-Tier: If your application is an n-tier application you may be dependent on other systems. Having a good understanding of how all applications work together will help you look at your big picture. Having a pictorial view of your systems can help give others a better understanding of how things work and can aide in trouble-shooting issues.
Operating Systems: Your application runs on an operating system. Your performance issues could be related to improperly configured systems. Check your operating system for signs. Look for full disks, CPU context switching, memory use and system logs.
Database: If your application uses a database make sure you are monitoring the database and its processes. Look for long running queries and log files for potential issues.
Solving your performance problems is possible. For starters you need to have a systematic approach to looking into and resolving them. Keep in mind that sometimes the fanciest solutions can cause more issues. Keep your group focused on the technologies they understand. Consider growing you core competency in fundamentals.