1.2 The Precious CPU Cycles
In recent years, single-thread performance has only grown a few percentage points a year due to the slowdown in Moore’s law as well as Dennard scaling issues (see Chapter 7, “CPUs and Domain-Specific Hardware”). Similarly, increasing the number of cores per CPU only partially helps, due to the problems pointed out in Amdahl’s law on parallelization.
Another important aspect is that CPU architectures and their associated operating systems are not the best matches for implementing services at the packet level: an example is interrupt-moderation, which reduces the number of interrupts to increase throughput, but has the side effect of jitter explosion.
As processors become more complex, processor cycles are becoming more precious every day and should be used for user applications and not for network services. A purely software-based solution might use a third of the available cores on an enterprise-class CPU to implement services; this is unacceptable in cases of high load on servers. It creates a big pushback for software-based services architectures.