Issue No. 09 - September (1995 vol. 21)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.464543
Software bottlenecks are performance constraints caused by slow execution of a software task. In typical client-server systems a client task must wait in a blocked state for the server task to respond to its requests, so a saturated server will slow down all its clients. A Rendezvous Network generalizes this relationship to multiple layers of servers with send-and-wait interactions (rendezvous), a two-phase model of task behavior, and to a unified model for hardware and software contention. Software bottlenecks have different symptoms, different behavior when the system is altered, and a different cure from the conventional bottlenecks seen in queueing network models of computer systems, caused by hardware limits. The differences are due to the “push-back” effect of the rendezvous, which spreads the saturation of a server to its clients. The paper describes software bottlenecks by examples, gives a definition, shows how they can be located and alleviated, and gives a method for estimating the performance benefit to be obtained. Ultimately, if all the software bottlenecks can be removed, the performance limit will be due to a conventional hardware bottleneck.
Performance bottlenecks, critical sections, software servers, client-server computing, layered queueing networks, distributed software engineering.
J. Neilson, S. Majumdar, C. Woodside and D. Petriu, "Software Bottlenecking in Client-Server Systems and Rendezvous Networks," in IEEE Transactions on Software Engineering, vol. 21, no. , pp. 776-782, 1995.