What effect does ZXTM's connection processing have on CPU usage?ZXTM will always process connections as quickly as possible, using as much CPU as it needs. When the traffic level increases, ZXTM gets more efficient, allowing more throughput per unit CPU time. Thus, for lower traffic levels, ZXTM may appear more heavily loaded than it actually is. Delivering PizzaA good analogy is a pizza delivery company. The way to get a pizza delivered fastest is to send out the delivery van as soon as one is ready, but when there are several pizzas ready to go at the same time (ie you have a higher load), you can make better use of your delivery van by delivering several at the same time, thus improving efficiency. Scheduling connectionsZXTM processes connections using the following loop:
When there are only a few connections to process, the loop is very short and ZXTM can execute it quickly because there's little work to do during each iteration. This uses a lot of CPU time (relatively) due to the frequency with which the loop executes, but it ensures that each connection is serviced as quickly as possible. ZXTM becomes more CPU efficient as throughput increases. Each loop iteration can do more work: there are more active connections at each iteration, and there is more data pending for each connection (due to increased loop dwell time). This means the ZXTM can spend more time servicing requests in bigger chunks, rather then executing the loop itself. So, ZXTM greedily uses as much CPU as it can to process the current connections as quickly as possible. At low connection rates, the CPU utilization is disproportionately high, and even when ZXTM gets near to 100% utilization, there is still plenty of spare capacity to process additional connections.
Brian Cowe
[Zeus Systems Engineering] 24 November 2006
|
Recent Articles
Other Resources
|


