Cluster-based servers delivering timely responsive service can shorten response latency and maximize system throughput through multithreading. However, under high workload, large volume of threads may overload the kernel, leading to an inoperational system "hold-out" status. Majority of overload control work have been done at application level, but lack the collaboration between application and kernel to proactively respond to overloading. In this paper we propose two application-kernel cooperative mechanisms, of which the Flush-Out function recovers system from overloading by filtering out certain amount of events from kernel, and the Early-Drop mechanism protects system from overloading by proactively responding to load status. Experiments on a cluster server indicate the proposed mechanisms improve server's responsiveness under high load condition by substantially cutting the response time by 7~22% and event drop rate to 10~21%. The application-kernel mechanisms demonstrate its effectiveness in keeping mission-critical servers in operational state and delivering improved performance under high workload.
展开▼