“Hey…the Internet is down” or “the application is really slow” are common problems I’ve heard over the years. As the Ned Stark meme goes, how does one simply fix “it’s slow”?
I’ve been working with enterprise-grade applications for over 10 years now, and I’d like to think I’ve become pretty darn good at it. At AppDynamics, we have an industry-leading APM solution which can pinpoint the root cause of issues nearly instantly and help your team resolve the issue as quickly as possible. So you need to constantly ask your Ops team: what are the problems that plague our most valuable applications? Being a David Letterman fan, I thought I would attempt a Top Ten List of common problems in enterprise software applications.
Full disclosure, this list is not scientific, it’s just based upon experience dealing with customers trying to solve application issues.
- Configuration – The wrong Thread Pool or Connection Pool Settings. Not providing enough threads to match large load can cause serious blocking issues and create bottlenecks.
- Memory Management – Improper Memory Configuration for the Code Size and Transaction Volume. Improper memory settings can cause excessive garbage collection and REMEMBER, in Java, a “Full Garbage Collection” means ALL THREADS STOP.
- Web Services – SOAP based web services have more overall overhead when compared to REST based web services. Did you know know that a simple SOAP web service call that returns a temperature or a zip code requires 1 or 2KB of packaging data? Like shipping a watch in a big box full of foam peanuts. Unnecessary overhead.
- Object Relational Mapping – We are really talking about Java and Hibernate Abuse
- Application Code – Poorly written code. Make ALL of your developers read Code Complete by Steve McConnell and Implement Unit Testing. Both can great improve the quality of their code.
- Input/Output Bottlenecks – storage and network bottlenecks – Ensure your disks are configured for sufficient I/O. You need to make sure you have sufficient I/O configurations, especially in virtual machine and complex environments.
- Logging Accidentally left on DEBUG mode – After your major load test, did you leave your logging solution in DEBUG mode? This can create a huge bottleneck that correlates directly with load. However, this problem is pretty sneaky and you won’t discover this issues unless you run a major load test.
- Request Overload – We have too many inbound requests coming in and not enough resources to handle the load — simply a bandwidth issue.
- Database – It’s probably not the database. Oracle DBA’s typically run a fast databases. SQL Server implementations are typically less tuned for performance.
- Database, cont. – It’s probably the database, bad index or just a bad query. Could also be a developer writing a query inside a query. (See Above)
Get help with your application issues, try AppDynamics APM for FREE today!