Cell Relay Archive

Cell Relay Retreat>List Archive>month:1996-Dec> msg00106



[Date Prev][Date Next][Thread Prev][Thread Next]  
  [Date Index][Thread Index][Author Index][Subject Index]

Re: Simple Question On CPU Utilization

  • From: fishler_len <len@loc201.tandem.com>
  • Date: Tue, 10 Dec 1996 17:37:40 -0800

Ashfaq Hossain wrote:
> 
> I have been thinking about the following basic observation:
> 
>         "When the user-level packet size is increased beyond
>          some point, CPU utilization decreases."
>

I assume you mean for something that approximates a requestor that
loops making requests as fast as it can.
 
> Why does this happen?  I am thinking of user-level pkt sizes
> (much) larger than the underlying MTU size.
> 
> I know the following:
> 
>         1.  For a packet transfer, the overheads can be grouped
>                 into 2 major categories:  per-byte overhead and
>                 per-message overhead.
> 
>         2.  per-message overhead remains reasonably constant
>                 with increasing pkt size.
> 
>         3.      per-byte overhead increases with pkt size (checksum
>                 calculation, user-to-kernel copy etc.)
> 
> Will anyone please shed some light on the underlying reason?







Its pretty straightforward.  Once the request size becomes large enough
for the data transfer to take longer than the processing time for that
request, the gaps between finishing processing the request and finishing
sending the request become larger. This translates to free time to the
processor (ie. lower utilization of the CPU for protocol processing).
This is somewhat of an oversimplification, as it ignores completion
interrupts and acks, but you get the gist (:-)).  This is only true if
the per-byte costs don't dominate, ie. you don't have excessive copies
in your implementation.

-- 
- Len Fishler -
aka fishler_len@tandem.com   aka len@loc201.tandem.com