Kernel-Mode Caching Should Add Speed in IIS 6.0
- By Scott Bekker
Internet Information Services (IIS) 6.0 boasts a new kernel-mode caching capability that could greatly enhance the Web server's performance.
"The IIS 6.0 kernel-mode cache is designed speed up static file performance significantly by bypassing the need to do a kernel-to-usermode transition to generate and serve the response," says Eric Deilly, IIS 6.0 program manager with Microsoft. "Instead, the kernel mode listener is able to receive the connection request, receive the new connection, check the kernel-mode cache, and serve the response from the cache on a cache hit."
IIS 6.0 is integrated with Windows .NET Server, which is expected to ship sometime in early 2002.
Microsoft is taking a page from ongoing work in the open source space, which has already enjoyed some notable successes with Web server platforms based on kernel-mode – or kernel-space, as at least one prominent Linux vendor calls it – caching schemes.
Last summer, for example, kernel-space caching arrived in a big way when a quad-processor Dell PowerEdge server running Linux and a new Web server engineered by Red Hat Software – called "Tux" – outperformed a similar quad-processor Dell system running Windows 2000 Advanced Server and IIS 5.0 by over 260 percent in the standard SPECweb99 benchmark. SPECweb99 is a respected benchmark that was developed by the Standard Performance Evaluation Corp.
To be sure, Red Hat’s Tux Web server boasts a bevy of unusual features in addition to its vaunted kernel-space caching capabilities, including a sophisticated thread-scheduling algorithm that the Linux kingpin claims can minimize the disruption posed by disk I/O operations. But the boost provided by the caching of static content in the kernel-space itself – which doesn’t require a time-consuming switch into user-space – seems to offer an undeniable advantage.
"If there’s a way to move part of what the server does into the same mode as the OS, you're likely to see a significant increase in performance," says Dan Kusnetzky, director of server operating environments for market research firm and consultancy IDC.
Microsoft points out that kernel-space or kernel-mode content caching has been around for quite some time, its recent success in the open source community notwithstanding. IBM Corp., for example, first incorporated a kernel-space Web cache into its AIX operating system in 1999. The software giant claims that it has designed kernel-mode caching into IIS not as a competitive reaction to Red Hat Software and to other open source competitors, but rather in response to customer feedback.
"More and more users rely on the Internet as a critical part of their daily business operations, and they want to quickly access and deliver necessary online information or resources. This caching technology will help customers do this," Microsoft’s Deilly contends.
Even though IIS 6.0 constitutes Microsoft’s first go-around at kernel-mode caching, IDC's Kusnetzky expects that it will probably provide customers with performance benefits just the same.
"The key to improving server performance is to do as few context switches [between kernel-space and user-space] as possible," he notes. "Every time a context switch occurs, you lose a lot of the performance of the machine because you have to reload [a microprocessor] pipeline and start up again, and things that are heavily I/O-bound, like Web server software, change context a lot."
But even proponents of kernel-space caching acknowledge that it isn’t a perfect solution.
"It runs in kernel-space rather than in user-space, and this is a double-edged sword. The tradeoff is between speed and flexibility -- running in kernel-mode means that it's extremely fast, the problem is that it will only serve static content," says Christopher DeMarco, a systems administrator with sysadmin outsourcing company Taos, who says that he’s watched with interest the development of kernel-space caching technologies.
IDC's Kusnetzky concurs: "Dynamic content exacerbates this problem because quite often what you’re doing is going to a database or some other source of content and doing some calculations to create a Web page and then send it out."
Microsoft’s Deilly says that his company continues to work on an approach to kernel-mode caching that can cache dynamic content in addition to static content. But he also acknowledges that such a solution won’t be available any time soon.
"We are working on a means to cache dynamic content … this capability is targeted for future releases of IIS and will not be available in IIS 6.0,” he says. Stephen Swoyer
Scott Bekker is editor in chief of Redmond Channel Partner magazine.