Web hosting platforms like IIS are the foundation for cloud computing, and they need both scalability and elasticity
to be effective. A platform has scalability if it allows additional
resources such as processing power, memory, or storage to be
provisioned to meet increasing demand. For example, if users of
applications running on your web server farm are complaining about
delays and slow performance, you may need to add more servers to your
farm to scale outward. Or you might upgrade your existing servers by
adding more memory to scale them upward. Elasticity, on the other hand,
means allowing such additional resources to be provisioned
automatically on demand.
Whether you are an enterprise hosting line of business (LoB)
applications or a cloud hosting provider managing a multi-tenant public
cloud, IIS 8 in Windows Server 2012 can enhance both the scalability
and elasticity of your hosting environment. IIS 8 provides increased
scale through improved Secure Sockets Layer (SSL) scalability, better
manageability via centralized SSL certificate support, Non-Uniform
Memory Access (NUMA)–aware scalability to provide greater performance
on cutting-edge hardware, and other new features and enhancements.
1. NUMA-aware scalability
High-end server hardware is rapidly evolving. Powerful servers that
are too expensive today for many smaller businesses to acquire will
soon be commonplace.
NUMA, which until
recently was available only on high-end server hardware, will probably
be a standard feature of commodity servers within the next two years. NUMA
was designed to overcome the scalability limits of the traditional
symmetric multi-processing (SMP) architecture, where all memory access happens on the same shared memory bus. SMP works well when you have a small number of CPUs,
but it doesn’t when you have dozens of them competing for access to the
shared bus. NUMA alleviates such bottlenecks by limiting how many CPUs
can be on any one memory bus and connecting them with a high-speed
interconnection.
How NUMA-aware scalability works
NUMA-aware
scalability works by intelligently affinitizing worker processes to
NUMA nodes. For example, let’s say that you have a large enterprise web application that you want to deploy on an IIS 8 web garden. A web garden is an application pool that uses more than one worker process.
The number of worker processes used by an application pool can be
configured in the Advanced Settings dialog box of an application pool,
and as Figure 1 shows, the out-of-the-box configuration for IIS is to assign one worker process to each application pool.
By increasing the Maximum Worker Processes setting over its default value of 1, you change the website associated with your application into a web garden. On NUMA-aware hardware, the result is that IIS will try to assign each worker process in the web garden to a different NUMA
node. This manual affinity approach allows IIS 8 to support
NUMA-capable systems with more than 64 logical cores. You can also use
this approach on NUMA-capable systems with fewer than 64 logical cores
if you want to try and custom-tune your workload.
On NUMA-capable systems with fewer than 64 logical cores, however, you can simply set Maximum Worker
Processes to 0, in which case IIS will start as many worker processes
as there are NUMA nodes on the system to achieve optimal performance.
You might use this approach, for example, if you are a multi-tenant
cloud hosting provider.
Benefits of NUMA-aware scalability
Internal testing by Microsoft has demonstrated the benefits that
enterprises and cloud hosting providers can gain from implementing IIS
8 in their datacenters. For example, in a series of tests using the
default IIS configuration of one worker process per application pool,
the number of requests per second that could be handled by a web
application actually decreased by about 20 percent as one goes from 32
to 64 cores on systems that are not NUMA-capable because of increased
contention for the shared memory
bus on such systems. In similar tests on NUMA-capable systems, however,
the number of requests per second that could be handled increased by
more than 50 percent as one goes from 32 to 64 cores. Such testing
confirms the increased scalability that IIS 8 provides through its
NUMA-aware capabilities.