Error: 17803, Severity: 20, State: 14

Had a SQL Server go buck wild this morning. Here are some entries from the log:

2010-02-23 06:29:27.08 server Error: 17803, Severity: 20, State: 14
2010-02-23 06:29:27.08 server Insufficient memory available..
2010-02-23 06:29:29.37 server Error: 17803, Severity: 20, State: 14
2010-02-23 06:29:29.37 server Insufficient memory available..
2010-02-23 06:29:31.63 server Error: 17803, Severity: 20, State: 14
2010-02-23 06:29:31.63 server Insufficient memory available..
2010-02-23 06:29:33.90 server Error: 17803, Severity: 20, State: 14
2010-02-23 06:29:33.90 server Insufficient memory available..
2010-02-23 06:29:36.16 server Error: 17803, Severity: 20, State: 14
2010-02-23 06:29:36.16 server Insufficient memory available..
2010-02-23 06:29:36.38 spid1 LazyWriter: warning, no free buffers found.
2010-02-23 06:29:36.38 spid1 Buffer Distribution: Stolen=1722 Free=0 Procedures=24
2010-02-23 06:29:36.38 spid1 Buffer Counts: Commited=2245 Target=2245 Hashed=499
2010-02-23 06:29:36.38 spid1 Procedure Cache: TotalProcs=6 TotalPages=24 InUsePages=24
2010-02-23 06:29:36.38 spid1 Dynamic Memory Manager: Stolen=1746 OS Reserved=504
2010-02-23 06:29:36.38 spid1 Global Memory Objects: Resource=692 Locks=41
2010-02-23 06:29:36.38 spid1 Query Memory Manager: Grants=0 Waiting=0 Maximum=333 Available=333
2010-02-23 06:29:38.43 server Error: 17803, Severity: 20, State: 14
2010-02-23 06:29:38.43 server Insufficient memory available..
2010-02-23 06:29:40.71 server Error: 17803, Severity: 20, State: 14
2010-02-23 06:29:40.71 server Insufficient memory available..
2010-02-23 06:29:42.98 server Error: 17803, Severity: 20, State: 14
2010-02-23 06:29:42.98 server Insufficient memory available..
2010-02-23 06:29:45.26 server Error: 17803, Severity: 20, State: 14

I simply gave this Server a quick reboot. Apparently he server was starved for memory. Fortunately it was a DEV server so no production down time. I am working on getting our monitoring software updated. Once that is done I will be able to fire off alerts based on memory conditions. Should be good times.

X app is slow…fix it

So an application is reported as slow. What do you check first? Here is how I checked an application today that was reported as running slow.

  1. Check the SQL Server Logs
  2. Check the Current Activity/Process Info (SQL Server 2000)
  3. Check to make sure no SQL Jobs are running
  4. Check my sysProcess Tracker. A little database/web app I wrote to go out and collect the sysprocesses table every hour for all servers. Can help show spikes or trends, but only on the hourly level. Would like to get more granular in the future.
  5. DatabaseServerPerf. Another custom solution that will go out and look at CPU, RAM and Disk for all servers on an hourly basis
  6. Then I start again from Step 1 and repeat
  7. I also fire up a Perf Mon Counter log with my presets to start collecting performance data every minute. I do this from a remote server as to hopefully limit the load on the database server. I leave the counter running well after the issue is reported as fixed so I can a clear view of the perf stats during and after. This helps me ensure my performance baseline is set appropriately.

There isĀ  probably a tool out there or single web app that could provide a one stop shop for all this, but what fun is that.