HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlMinor

SQL Server 2016 AlwaysOn VDI_CLIENT_WORKER command

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
vdi_client_workersql2016servercommandalwayson

Problem

I've setup an AlwaysOn AG on SQL Server 2016 SP1 Standard. Then I created an AG and added a database with autoseeding (synchronous mode). I used SSMS 2017 to create my AG and to add the database. Everything works fine.

But when I check the wait stats I get waits of type VDI_CLIENT_OTHER (80%) on the primary with an average resource time of 42 seconds. After some research I found out that the waits are generated by 4 sessions that execute the command VDI_CLIENT_WORKER. As I understand the wait means that a thread is waiting for work when seeding a new AG. But what I do not understand is why I have those waits because my AG is ready and why do I have 4 sessions that execute the VDI_CLIENT_WORKER command?
I found out that each scheduler has one VDI_CLIENT_WORKER

Can somebody try to explain what VDI_CLIENT_WORKER-command does and how can I solve the problem of the many VDI_CLIENT_OTHER waits?

Solution

After some more research I discovered that when I create an AG with autoseeding SQL Server creates a new worker (that executes the VDI_CLIENT_WORKER command) for each scheduler.
To remove those workers I need remove every 'autoseeded' AG and restart the SQL Server service.

If I then create the AG with full backup/restore none of these workers are created.

Context

StackExchange Database Administrators Q#196319, answer score: 5

Revisions (0)

No revisions yet.