Software-NUMA and SQL Server misconceptions

While digging around NUMA(software and hardware) I found something very interesting. According to BOL soft-NUMA affects directly the number of lazy-writer processes per memory node so if you experience a bottleneck in lazy-writes, you should play with this configuration. Well, according to a blog post of the CSS engineers of Microsoft, this is not exactly true. The lazy-writer process is one per hardware NUMA group i.e. single process per single memory node. The part that is affected by soft-NUMA is the I/O Completion ports.

The next question is what is that I/O Completion port. I/O completion ports provide an efficient threading model for processing multiple asynchronous I/O requests on a multiprocessor system. When a process creates an I/O completion port, the system creates an associated queue object for requests whose sole purpose is to service these requests. Processes that handle many concurrent asynchronous I/O requests can do so more quickly and efficiently by using I/O completion ports in conjunction with a pre-allocated thread pool than by creating threads at the time they receive an I/O request.


1. Microsoft CSS Engineers blog post on soft-NUMA

2. MSDN article on I/O completion ports


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s