1.

What are some of the common performance bottlenecks and how do they impact your application?

Answer»

Bottlenecks are system obstructions that contribute to degradation in the system’s performance. They are caused either by hardware issues or coding errors that lead to a reduction of throughput under varying loads. Some of the common bottlenecks in performance are:

  • Processor bottlenecks: These occur when the processor is overloaded and cannot perform its tasks and respond to requests on time. These can be in 2 forms:
    • CPU running at above 80% CAPACITY for a prolonged period.
    • A long queue of requests for the processor.
      Both of these forms occur when the system has insufficient memory and has continuous interruption from the I/O devices. They can be resolved by adding more RAM, increasing CPU power and improving algorithmic efficiency.
  • Memory Utilization: This bottleneck OCCURS when the system does not have fast RAM or does not have sufficient memory. This impacts the speed of serving information to the CPU thereby slowing down the application. Whenever the device does not have enough RAM, the STORAGE will be offloaded to SSD or HDD. These issues can be resolved by increasing the memory capacity or increasing RAM. If the RAM is very slow, then it can be replaced. Sometimes the problem can arise due to memory leak issues wherein a program does not release memory so that the system can use it. Correcting the application program to free memory also can fix the issue.
  • Network bottlenecks: These occur when two or more devices lack the necessary bandwidth to communicate with each other. Whenever there is an overburdened server or overloaded network that causes the network to lose its integrity. These issues can be resolved by upgrading servers, network hardware like hubs, routers, access points etc.
  • Software bottlenecks: These bottlenecks are due to the software where programs are built for handling finite tasks so that it doesn’t utilize additional RAM or CPU. This makes the program use only a single CORE or processor despite the availability of resources. These can be resolved by MAKING the software program more efficient so that it can use available resources efficiently.
  • Disk Usage: The slowest component in a server is long-term storage units like SSDs or HDDs that are unavoidable. The fastest long-term storage units have physical limits which makes it difficult for the programmers to troubleshoot such issues. These can be fixed by increasing RAM caching rates, reducing fragmentation issues or by addressing insufficient bandwidth by switching to faster storage units.

The key to fixing all the bottlenecks are by pinpointing the root cause of the system degradation and then by fixing the code or by adding additional hardware resources depending on the causes.



Discussion

No Comment Found