Identifying bottlenecks

Enterprise applications become more complex every day. When the business succeeds, the application supporting that business will have more users, which means a bigger load received every day, so we need to take care of the performance bottlenecks that could appear.

To understand the term bottleneck, we are going to give a simple definition. In software systems, a bottleneck happens when the function of an application or a system is starting to be limited for a single component, and it is like comparing the neck of a bottle slowing down overall water flow.

In other words, we can see a bottleneck if our application starts to perform slowly or starts to exceed the anticipated response time . This can happen for different kinds of bottlenecks, such as the following:

  • CPU: This happens when this resource is busy and cannot respond to the system properly. It is common to start having this bottleneck when we start to see CPU at utilization exceed 80% for extended periods of time.
  • Memory: This happens when the system doesn't have enough RAM or fast RAM. Sometimes the application logs show out-of-memory exceptions or leak-of-memory problems.
  • Network: Associated with a lack of necessary bandwidth 
  • The application itself, code problems, too many exceptions not being controlled, poor use of resources, and so on

Using APMs to identify bottlenecks  is a good approach because an APM can collect runtime information without slowing down application performance.

To identify bottlenecks, we can use a couple of practices; load testing and monitor tools, or profiling tools. The following section explains profiling tools.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.223.206.225