spaghettidba / WorkloadTools

A collection of tools to collect, analyze and replay SQL Server workloads, on premises and in the cloud
MIT License
232 stars 52 forks source link

Replay performance #82

Closed mejje closed 4 years ago

mejje commented 4 years ago

I'm having a 10 GB Trace workload for 1 hour that takes 10+ hours to replay in synchronized mode, and 3 hours without synchronization. With synchronization I get like 50 reqs/sec, without about 1000 reqs/sec. Have you successfully gotten this to run at 3000 reqs/sec? I can't see any resource exhaustion on the sql server or the client machine running this.

How can I help in debugging this?

Are the worker events grouped by SPID?

I noticed that Thread.Sleep is used for waits > 2ms, do you think using a high resolution timer and spinning to synchronize instead would improve this?

spaghettidba commented 4 years ago

I noticed the same and I'm debugging it. I'll keep you posted.

spaghettidba commented 4 years ago

Fixed with commit e921fedd2aa1db54a02f61ff9115a31c0d322805 Released in v1.5.5