In Internet servers that run on general-purpose operating systems, network subsystems and disk subsystems cooperate with each other for user requests. Many studies have focused on optimizing the data movement across the subsystems to reduce data copying overhead among intermediate buffers such as process buffers, network send buffers and disk buffers. When data are moved across the subsystems, events such as read requests and write requests for data movement are also delivered across the subsystems by the servers and operating systems. However, there have been fewer studies on the optimization of event delivery which controls data copying timing across the subsystems. In conventional operating systems, to transfer data in the disk subsystem into the network subsystem, several different contexts are involved. A series of events are passed through the contexts. Whenever an event in one context is passed into the other context, context switching and scheduling are incurred. We have developed inter-subsystem event delivery mechanism, disk-to-network splicing (DNS), which optimizes event delivery among the subsystems involved to suppress scheduling and context switching during I/O request processing. We developed a DNS mechanism and performed experiments on Linux 2.4. The experimental results show that the system performance is improved by 4.9% 10.1%.
[1]
Peter Druschel,et al.
TCP Implementation Enhancements for Improving Webserver Performance
,
1999
.
[2]
Peter Druschel,et al.
Lazy receiver processing (LRP): a network subsystem architecture for server systems
,
1996,
OSDI '96.
[3]
David A. Maltz,et al.
TCP Splice for application layer proxy performance
,
1999,
J. High Speed Networks.
[4]
Peter Druschel,et al.
Resource containers: a new facility for resource management in server systems
,
1999,
OSDI '99.
[5]
Peter Druschel,et al.
Better operating system features for faster network servers
,
1998,
PERV.
[6]
Abraham Silberschatz,et al.
Signaled Receiver Processing
,
2000,
USENIX Annual Technical Conference, General Track.
[7]
Willy Zwaenepoel,et al.
IO-Lite: a unified I/O buffering and caching system
,
1999,
TOCS.