Processor or I/O Affinity Set
Setting processor affinity for SQL Server can potentially cause performance issues. Processor affinity determines which CPUs a particular thread or process can run on. If the affinity is set incorrectly, it can result in uneven distribution of processing power and reduced performance. It’s important to carefully consider the implications of setting processor affinity and to monitor performance after making changes.
What Is the Affinity Mask Server Configuration Option?
Processor affinity for SQL Server is the ability to define which processor cores the SQL Server engine will use for multitasking. By assigning specific processor cores, SQL Server only uses those processors for multitasking database operations. This can improve performance by reducing processor reloads and thread migration across processors.
On the other hand, I/O affinity binds Microsoft SQL Server disk I/Os to a specified subset of CPUs. This means that you can specify which CPUs will handle disk input/output operations for SQL Server. This can help improve performance by reducing contention for resources between different processes.
Suggested Action
Ensure that both processor affinity and I/O affinity are set to AUTO.
How to Reset Processor Affinity Back to Auto
ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU = AUTO
GO
RECONFIGURE
GO
How to Reset I/O Affinity Back to Auto
EXEC sys.sp_configure @configname = N'show advanced options',
@configvalue = N'1';
RECONFIGURE;
GO
EXEC sp_configure 'affinity I/O mask', 0;
RECONFIGURE WITH OVERRIDE;
GO
EXEC sys.sp_configure @configname = N'show advanced options',
@configvalue = N'0';
RECONFIGURE;
GO
Further Reading
Affinity Mask Server Configuration Option | Microsoft Learn