OCS: Track Down A Memory Leak

From OC Systems Wiki!
Jump to: navigation, search

Tracking down an elusive memory leak

Project: NERC (New En Route Centre) is a major new Air Traffic System for National Air Traffic Services in Hampshire, England. NERC provides en route air traffic control for all aircraft in UK airspace: a system that demands the utmost in reliability and response time.

Problem:NERC purchased a commercial X server to support its workstations. But its performance seemed sluggish. The X-server vendor blamed the center's in-house applications for poor code. Caught in a classic finger-pointing scenario, the developers needed to pinpoint the actual cause of the slowdown.

Solution: NERC's developers used Aprobe to verify how well the X server was operating. Their probes quickly revealed that the X server was spending 90 per cent of its time in an inefficient buffer allocate and de-allocate routine. Further probes showed that the buffers maintained by the vendor's X server were terribly fragmented.

OC Systems consultants wrote probes to replace the vendor's faulty buffer routine with a much cleaner one. CPU usage went down dramatically: the problem was fixed. NERC supplied the X-server vendor with indisputable evidence of the problem and the code to fix it. The vendor was able to repair the problem and incorporate the fix into their next build.

Remarks: NERC's developers left the probes in their system to fix the problem until they installed the new X server. Aprobe helped them move beyond finger pointing to identifying and resolving the actual problem. Without access to source code, they were able to track down and fix a serious issue in a piece of commercial off-the-shelf software.