PREEMPTIVE_OS_PIPEOPS Wait type
The PREEMPTIVE_OS_PIPEOPS
wait type in SQL Server occurs when a thread is executing an external operation that requires communication with the operating system via named pipes. Named pipes are a method of inter-process communication (IPC) that SQL Server sometimes uses to communicate with external processes or to handle certain system-level operations.
“PREEMPTIVE” indicates that SQL Server’s thread is temporarily switched from its usual non-preemptive scheduling (cooperative multitasking) to preemptive mode (where it relies on the operating system’s scheduling). This wait type is seen when SQL Server is waiting for an external operation to complete, particularly one that involves named pipes (i.e., reading from or writing to a pipe).
Common Scenarios for PREEMPTIVE_OS_PIPEOPS
Wait Type:
- External Data Access: When SQL Server interacts with external processes or services over named pipes.
- OLEDB or Linked Servers: If SQL Server uses a linked server or an external process that communicates over named pipes, you might see this wait type.
- SQL Server Management Tools: Some maintenance tasks that involve external applications or administrative tools may invoke named pipe operations, resulting in this wait.
- Extended Stored Procedures: Older extended stored procedures that interact with the operating system or external resources might use named pipes.
How to Investigate PREEMPTIVE_OS_PIPEOPS
Waits:
- Check Linked Servers: If you are using linked servers to access external databases or data sources, check their status and the network to ensure they are responsive and not experiencing delays.
- External Processes: If there are external applications or scripts interacting with SQL Server via named pipes, monitor those processes to ensure they are operating efficiently.
- Review System-Level Operations: Sometimes, administrative or maintenance tools that communicate over named pipes can be slow, leading to this wait type.
Reducing PREEMPTIVE_OS_PIPEOPS
Waits:
- Optimize Linked Server Connections: Ensure the remote servers you are connecting to via linked servers are responsive and have sufficient resources.
- Review Network Performance: Named pipes require reliable network communication, so check for any network bottlenecks or issues that could slow down these operations.
- Use Other IPC Methods: If possible, use other methods of communication like TCP/IP instead of named pipes, which might offer more predictable performance in certain environments.
- Monitor External Dependencies: If external applications are contributing to these waits, consider monitoring them for performance issues or adjusting how frequently SQL Server interacts with them.
Here is a sample of PREEMPTIVE_OS_PIPEOPS
being associated with xp_cmdshell as reported in Database Health Monitor.
The PREEMPTIVE_OS_PIPEOPS
wait type indicates that SQL Server is waiting on an operation outside its control, typically due to communication via named pipes with the OS or other services. Reducing such waits often involves optimizing network performance, linked server configurations, or external processes.
Need help, consider the Stedman Solutions team for help with your PREEMPTIVE_OS_PIPEOPS wait types.