{"id":43,"date":"2013-11-01T00:00:00","date_gmt":"2013-01-01T00:00:00","guid":{"rendered":"https:\/\/www.sqlhammer.com\/blog\/set-windows-failover-cluster-timeout-thresholds"},"modified":"2026-03-18T21:50:31","modified_gmt":"2026-03-18T21:50:31","slug":"set-windows-failover-cluster-timeout-thresholds","status":"publish","type":"post","link":"https:\/\/sqlhammer.com\/index.php\/2013\/11\/01\/set-windows-failover-cluster-timeout-thresholds\/","title":{"rendered":"Set Windows Failover Cluster Timeout Thresholds"},"content":{"rendered":"<h2>Purpose:<\/h2>\n<p>When dealing with a single site the default Windows Failover Cluster timeout settings have always done a good job for me but, once you branch out into multiple geographic sites, maintaining clusters across those sites often requires tweaking these settings.<\/p>\n<p><em>NOTE: These changes are generic to any cluster but they are most notably used when you have an off-site DAG for Microsoft Exchange.<\/em><\/p>\n<h2>Setting Cluster Heart Beat Timeout Settings:<\/h2>\n<p>By default your WFC connection will fail when 5 pings are lost (1 ping per second for a total of 5 seconds). The below cluster.exe commands are run on only one of the clustered nodes and will apply to all of them. In my example, the thresholds will be changed to a threshold of 10 pings lost with pings being sent every 2 seconds for same site and every 4 seconds for cross site (totals of 20 seconds and 40 seconds) but you can configure them to whatever you feel is appropriate to the latency and stability of your cross data-center connection.<\/p>\n<h2>With Command Prompt:<\/h2>\n<ul>\n<li>Run command prompt as administrator.<\/li>\n<\/ul>\n<ul>\n<li>Execute the following to change the\u00a0<strong><em>same-site<\/strong><\/em>\u00a0heart beat to\u00a0<strong><em>2<\/strong><strong><\/em>\u00a0seconds\u00a0<\/strong>(replace\u00a0<em>clustername<\/em>\u00a0with the actual WFC name).<\/li>\n<\/ul>\n<pre><code class=\"language-\">cluster \/cluster:clustername \/prop SameSubnetDelay=2000:DWORD<\/code><\/pre>\n<ul>\n<li>Execute the following to change the\u00a0<strong><em>cross<\/strong><strong><\/em><em>-site<\/strong><\/em>\u00a0heart beat to\u00a0<strong><em>4<\/strong><strong><\/em>\u00a0seconds\u00a0<\/strong>(replace\u00a0<em>clustername<\/em>\u00a0with the actual WFC name).<\/li>\n<\/ul>\n<pre><code class=\"language-\">cluster \/cluster:clustername \/prop CrossSubnetDelay=4000:DWORD<\/code><\/pre>\n<ul>\n<li>Execute the following to change the\u00a0<strong><em>same-site<\/strong><\/em>\u00a0ping loss threshold to\u00a0<strong><em>10 lost pings<\/strong><strong><\/em>\u00a0<\/strong>(replace\u00a0<em>clustername<\/em>\u00a0with the actual WFC name).<\/li>\n<\/ul>\n<pre><code class=\"language-\">cluster \/cluster:clustername \/prop SameSubnetThreshold=10:DWORD<\/code><\/pre>\n<ul>\n<li>Execute the following to change the\u00a0<strong><em>cross<\/strong><strong>-site<\/strong><\/em>\u00a0ping loss threshold to\u00a0<strong><em>10 lost pings<\/strong><strong><\/em>\u00a0<\/strong>(replace\u00a0<em>clustername<\/em>\u00a0with the actual WFC name).<\/li>\n<\/ul>\n<pre><code class=\"language-\">cluster \/cluster:clustername \/prop CrossSubnetThreshold=10:DWORD<\/code><\/pre>\n<h2>With Powershell:<\/h2>\n<ul>\n<li>Run PowerShell as administrator.<\/li>\n<\/ul>\n<ul>\n<li>Import the FailoverClusters module.<\/li>\n<\/ul>\n<pre><code class=\"language-\">Import-Module FailoverClusters<\/code><\/pre>\n<ul>\n<li>Execute the following to change the\u00a0<strong><em>same-site<\/strong><\/em>\u00a0heart beat to\u00a0<strong><em>2<\/strong><strong><\/em>\u00a0seconds\u00a0<\/strong>(replace\u00a0<em>clustername<\/em>\u00a0with the actual WFC name).<\/li>\n<\/ul>\n<pre><code class=\"language-\">cluster \/cluster:clustername \/prop SameSubnetDelay=2000:DWORD<\/code><\/pre>\n<ul>\n<li>Execute the following to change the\u00a0<strong><em>cross<\/strong><strong><\/em><em>-site<\/strong><\/em>\u00a0heart beat to\u00a0<strong><em>4<\/strong><strong><\/em>\u00a0seconds\u00a0<\/strong>(replace\u00a0<em>clustername<\/em>\u00a0with the actual WFC name).<\/li>\n<\/ul>\n<pre><code class=\"language-\">cluster \/cluster:clustername \/prop CrossSubnetDelay=4000:DWORD<\/code><\/pre>\n<ul>\n<li>Execute the following to change the\u00a0<strong><em>same-site<\/strong><\/em>\u00a0ping loss threshold to\u00a0<strong><em>10 lost pings<\/strong><strong><\/em>\u00a0<\/strong>(replace\u00a0<em>clustername<\/em>\u00a0with the actual WFC name).<\/li>\n<\/ul>\n<pre><code class=\"language-\">cluster \/cluster:clustername \/prop SameSubnetThreshold=10:DWORD<\/code><\/pre>\n<ul>\n<li>Execute the following to change the\u00a0<strong><em>cross<\/strong><strong>-site<\/strong><\/em>\u00a0ping loss threshold to\u00a0<strong><em>10 lost pings<\/strong><strong><\/em>\u00a0<\/strong>(replace\u00a0<em>clustername<\/em>\u00a0with the actual WFC name).<\/li>\n<\/ul>\n<pre><code class=\"language-\">cluster \/cluster:clustername \/prop CrossSubnetThreshold=10:DWORD<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Purpose: When dealing with a single site the default Windows Failover Cluster timeout settings have always done a good job for me but, once you branch out into multiple geographic sites, maintaining clusters across those sites often requires tweaking these settings. NOTE: These changes are generic to any cluster but they are most notably used [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-43","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts\/43","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":1,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts\/43\/revisions"}],"predecessor-version":[{"id":306,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts\/43\/revisions\/306"}],"wp:attachment":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/media?parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/categories?post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/tags?post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}