How many deadlocks am i really getting? system health or deadlocks/sec? I'm trying to look at deadlocks on a troublesome server, and when I look at the system_health xel file, I see 80 records for "xml_deadlock_report" in about 16 hours.  I assume these are all different deadlocks?

Perfmon and system_health don't really seem to match up.  


which is more reliable, perfmon deadlocks/sec (hours * 60 * 60) * deadlocks/sec = @ 4000 or the 80 rows in the xml deadlock report? (I'm viewing the system_health xel via enterprise manager 2014)
is my method for the math totally wrong? I realize it is a generalization, but, really...that's a lot.


SQL 2012 Standard Edition
Windows 2012

I'm also using the following from Jon Kehayias
http://www.sqlservercentral.com/articles/deadlock/65658/

but it doesn't give me the time, and although the post is old I imagine it is pulling from the same .xel file as the system_diag so is missing events (as he mentions, if I'm reading his posts correctly)
From a reliability standpoint of deadlocks per second the perfmon counter will be more accurate.  The system_health monitor is based on ring buffers which can overflow over time or miss events if there is enough activity within a brief period in order to facilitate reliability.  There is a file that backs this which you can look at which will give you more history but if you are experiencing as many deadlocks as you are indicating there is a distinct possibility that you may not have full history within these.  This would explain your discrepancy between the two measurements, you aren't doing anything wrong from what I can see.

The files will be located in your SQL Server install directory under %Program Files%\Microsoft SQL Server\MSSQL11.[Instance Name\MSSQLSERVER]\MSSQL\Log\system_health_*.xel.