Server configuration: lightweight pooling
Applies to: SQL Server
Use the lightweight pooling
option (also called fiber mode) to provide a means of reducing the system overhead associated with the excessive context switching sometimes seen in symmetric multiprocessing (SMP) environments. When excessive context switching is present, lightweight pooling might provide better throughput by performing the context switching inline, thus helping to reduce user/kernel ring transitions.
Limitations
Common language runtime (CLR) execution isn't supported under lightweight pooling. Disable one of two options: clr enabled
or lightweight pooling
. Features that rely upon CLR and that don't work properly in fiber mode include the hierarchyid data type, replication, and Monitor and Enforce Best Practices by Using Policy-Based Management.
Lightweight pooling isn't supported on SQL Server Express edition.
Remarks
Fiber mode, which is based on Windows fibers, is intended for situations in which the context switching of worker threads are the critical bottleneck in performance. Because this scenario is rare, fiber mode rarely enhances performance or scalability on a typical system. Improved context switching in Windows Server reduces the need for fiber mode.
We don't recommend that you use fiber mode scheduling for routine operation. Fiber mode can decrease performance by inhibiting the regular benefits of context switching, and because SQL Server components that use Thread Local Storage (TLS) or thread-owned objects, such as Windows mutexes, can't function correctly in fiber mode.
Setting lightweight pooling
to 1
causes SQL Server to switch to fiber mode scheduling. The default value for this option is 0
.
The lightweight pooling
option is an advanced option. If you use the sp_configure
system stored procedure to change the setting, you can change lightweight pooling
only when show advanced options
is set to 1
. The setting takes effect after the server is restarted.