Computer Communications Performance Analysis

In the analysis of computer and communication network performance, the fundamental notion is one of resource, both physical and logical.  Physical resources are processsor cycles or time, memory, bus bandwidth, communication link transport times, and so forth.  Logical resources are files, messages, pointers, and so forth.  At each stage of execution, a given task requires a specific set of resources that have to be held for a given time interval, from the start to the end of execution of a task.

This in turn leads to the notion of a bottleneck resource: a resource is a bottleneck if it is increased in quantity then the throughput increases proportionally; conversely, a resource is not a bottleneck if increasing it has no impact on throughput.  This in turn suggests that adding extra hardware may be the simplest fastest way to improve performance in a computer communication network; changing software can be fraught with peril, leading to unknown ramifications.

Any computer communication system has a bottleneck: the question is where do you want the bottleneck?  Typically you should design a system so that the bottleneck is the end user: if the system responds to an action by the end user within a second, then typically the end user is the bottleneck, spending the time reading a screen and thinking and pondering what to do next.

This analysis was used to evaluate the performance of over twenty online lottery systems that were deployed in the United States and in the United Kingdom; the throughput can be thousands to tens of thousands of tickets per second, while the latency or delay must be under a second as perceived by the purchaser.  These systems were engineered to achieve state of the art parallelism or concurrency as well as state of the art redundancy and security (it is not an option to lose the winning lottery ticket!).

In bottleneck analysis, we rely on a conservation law, in the literature called Amdahl's Law or Little's Law: consider a system that has jobs arriving, being processed, and departing, with the arrival rate and departure rate being the same, and the mean processing time for each job is the same.  For example, if 2 jobs arrive per second, and each job requires five seconds of processing, then on average the system has 2x5=10 jobs inside being processed.

This observation will allow over 95% of all computer communication systems to be analyzed!

A starting point to more sophisticated analysis is to deal with a single queue served by a single processor; tasks arrive at random times, and require random amounts of processor cycles to be executed; the processor is present executing up to a given maximum number of tasks, and then it switches over to do other work and is absent, leading to the queue building up with work to be processed when the processor returns.  In analyzing this type of system, throughput increases and delay is ameliorated if the tasks require a constant equal amount of time, and the processor is away for a fixed amount of time.  This type of system gives insight into how to design an overload control for any computer communication system.