Sql-server – SQL Server 2012 Page Life Expectancy resets to 0 after about 50 days

page-life-expectancysql serversql-server-2012

I've noticed an odd behavior on a 2-server HA cluster and I was hoping someone could confirm my suspicion, or maybe offer some other explanation… Here is my setup:

  • A 2-server SQL 2012 SP1 installation
  • SQL AlwaysOn HA has been enabled for a few databases
  • CPUs are 2.4GHz, 4 cores
  • RAM is 34 GB (it is an AWS instance, hence the odd number)
  • Resource utilization is relatively low – each server has 14+ GB memory free, and SQL is not capped on how much memory to use
  • Disk access time is fine – rarely going over 15ms/Read or Write
  • Databases are not big – 1 GB, 1.5 GB, 7.5 GB
  • SQL server process is using 16 GB Private Bytes, 15 GB Working Set

Overall, no resource issues are noted. Now for the odd part. SQL is not restarted (process has been running for almost 6 months) but it seems that every ~50 days, the Page Life Expectancy counter drops to (almost) 0. Up until that point it climbs steadily, no drops. Here is a perf graph:

enter image description here

When I look at the counter data (I don't have the exact number, just an hourly aggregation) it seems the PLE counter value reached about 4,295,000 sec (roughly 50 days) every time (at least every time I have data for).

My crazy theory is that the PLE number is held as milliseconds as an unsigned long int (which has a limit of 4,294,967,295) and at 49.71 days it resets, either by design, or because of a bug. This would explain the behavior of the two servers and the identical pattern they have. Or it could be something totally different and I am just not making any sense. 🙂

Has anyone seen anything like that, or can explain this behavior?

P.S. I saw this post, but my case seems slightly different.

P.P.S. This is a repost – I originally posted it here, but was advised the audience here is more appropriate.

Thanks!

Best Answer

I've seen this behaviour on a client site running SQL2012 SP1. The specifics here were NUMA, and PLE demonstrating a 'sawtooth' pattern but on an hourly cycle.

A couple of threads on SQLServerCentral discussed around this:

http://www.sqlservercentral.com/Forums/Topic1415833-2799-1.aspx http://www.sqlservercentral.com/Forums/Topic1424826-2799-1.aspx

the end result being that applying SP1 CU4 seemed to fix the problem.

CU4 contains the innocent looking fix An update is available for SQL Server 2012 Memory Management KB2845380

Worth a try?