Search Health Reports (SRx) - Summary for each 'Test'

 Brought to you by SearchEngineers@microsoft.com, the Search Health Reports (SRx Core) , which can be downloaded here, is a PowerShell-driven tool for surfacing complex diagnostics for SharePoint Search through new multifaceted reports. The SRx includes a battery of tests that leverage a customized SSA object extended with contextual data from many disparate sources.  For more information on this tool, please see our announcement here.   A premium version with additional tests, test automation, Dashboard  integration and Alerting is also available.  Contact SearchEngineers@microsoft.com for more information.

Below is a summary of each core test in the tool (and we will continue to update this list).  The Premium Tests are listed after this table.

Core Tests Description Comments
FarmAdminSyncTimerJob Tests that the 'Application Server Administration Service Timer Job' (aka: 'job-application-server-admin-service') has recently run on each of the Search servers in the farm On all servers with the SP Server Search Service Instance started, this administrative Timer Job runs once a minute to initiate:
  • Service Instance synchronization, which may involve starting the physical process and provisioning any resources
  • Synchronizing configuration with the Search Admin DB including:
    • Propagating schema updates throughout Search system
    • Persisting Content Source settings to registry of Crawlers
    • Synchronizing the Search Topology including activation or deactivation of components from the host
    • Persisting Constellation configuration to the Admin DB
    • Trigger checks for initiating a Master Merge of the Index
    • Ensures the Legacy Admin is running on the Primary Admin
FarmDefaultSSAProxy Tests that the SSA Proxy for this SSA is defined as the default in all Proxy Groups Web Applications consume search via the SSA Proxy. By default, the out of the box search web parts can only consume the default SSA in a Proxy Group.
FarmHasOnlyOneSSA SSA count While multiple SSAs are supported, it is recommended to have only one SSA per farm.
FarmServiceInstances Tests that the Search related SharePoint Service Instances are 'Online' where applicable Started on all Search servers:
  • Search Host Controller Service
  • SharePoint Server Search
  • SSP Job Control Service
  • Microsoft SharePoint Foundation Administration
  • Microsoft SharePoint Foundation Timer
Started on applicable servers:
  • Search Administration Web Service  (w/ Admin comps)
  • Search Query and Site Settings Service  (w/ QPCs)
OSPingSearchServer Test connectivity to all Search servers
OSPingSQLServer Test connectivity to all Search SQL servers Handles SQL Aliases
OSPowerPlan Test Search servers Power Plan setting Recommended power plan for Search servers is "High Performance" (Balanced is default). The Balanced plan may power down CPU cores and disks.
OSProcessRunning Confirm all Search component related processes are running on all Search servers Verifies that a corresponding process exists for each component (mssearch.exe for crawl components and noderunner.exe for each of the Juno components)
OSServiceRunning Confirm all Search services are running on all  Search servers On each Search server, checks the status for "SharePoint Server Search", "SharePoint Search Host Controller", "SharePoint Administration", and the "SharePoint Timer Service".
OSVolumeProperties Tests Index Component's Data Volume properties Recommended Index Component Data Volumes properties are Compression disabled, Block Size set to 65536, and Indexing disabled.
SSAAdminSynchronized Confirms the Primary Admin and "legacy" Admin component are properly synchronized to the same server. Also confirms that the System Manager, a thread running in the Primary Admin component, can be reached (Get-SPEnterpriseSearchStutus) and confirms that the legacy Admin component is initialized. In addition to the Admin component presented in the Search topology, the SSA also has a “legacy” admin component for the SSA used primarily for Crawl and Content Source management, but also impact operations like pausing an SSA. While the legacy component is typically hidden from you, normal administrative operations (e.g. pausing an SSA, starting/stopping a crawl, accessing content source information, etc) will start breaking if it is not properly provisioned/running
  • The "Application Server Administration Services Timer Job" synchronizes the legacy Admin to run on the same server as the Primary Admin component
SSAComponentState Confirm all Search components in the topology are active
SSACrawlNotStuckInStarting Confirms Crawls are not "stuck" in Starting state Flags an error if more than 10 minutes passes since the 'Request' time of a that applicable Crawl
SSADatabaseSizingLimits Confirms all Search databases are within recommended sizing limits Validates both the average and total number of items in each Crawl and Link Store DBs as well as physical sizing requirements
SSAHasContentSources Confirms SSA has at least one Content Source If the legacy Admin (e.g. $xSSA.AdminComponent) is not currently provisioned (or is unhealthy), this test may report zero content sources
SSAIndexDiskReports Reports extensive disk information for Search Reports failures if unable to attain volume info or disk sizing details.Confirms there is enough free disk space for each replica to complete a Master Merge based on an *estimated size for that merge to complete
  • The amount of space needed to complete a Master Merge is estimated by multiplying the Checkpoint size by 2.5x
SSAIndexDocumentCount Reports total searchable items in the index Reports index partitions document counts. Confirms a replica holds less than 10/20 million items (warns when approaching this threshold and errors if exceeding)
SSAIsOnline Confirms SSA is online
SSANotPaused Confirms SSA is not paused Reports pause reason if paused
SSASchemaProperties Tests that Managed and Crawled Property totals are within recommended thresholds Recommended maximum number of Managed Properties is 50,000. Recommended maximum number of Crawled Properties is 300,000.
SSASearchAdminEndPoints Confirms Search Admin Service endpoints are active SearchAdmin.svc is the WCF Endpoint for the “Search Administration Web Service Application for SSA” and used for Crawl/Content Source management. If problems arise here, it's worth verify that the legacy admin component is properly provisioned/running
SSASearchServiceEndPoints Confirms Search Service endpoints are active SearchService.svc is the WCF Endpoint for the SSA and used by Web Apps to consume Search
TopologyHasMultiAdminComps Confirms a Primary Admin component is active and multiple Admin components are active
TopologyNoServerIdMismatch Confirms each Search component has a valid server ID Removing/Re-joining a SP Server from the farm will cause the server id to change for SP Server object… but not for the Search component running on that SP Server
TopologyNotBeingModified Confirms that no Topology activations in progress
Premium Tests Description Comments
SSAContentSourceDocCount Collects Success, Warning, Error, etc... status information per content source for Dashboard report
SSAContentSourceThresholds Tests Content Source crawl log data against custom thresholds Allows the Search Admin to configure thresholds per Content Source by modifying the SRx\etc\ContentSourceExcludeFilter.csv and SRx\etc\ContentSourceThresholds.csv files. For example, among many other conditions, you may trigger an alert if a crawl doesn't meet a certain Success:Error ratio, exceeds a time period, or fails to meet a specified crawl rate.
SSACrawlActivity Collects data for Crawl Activity Dashboard Report Shows crawl activity for all Content Sources over the last 48 hours. Very useful for identifying possible causes for CPU and disk resource bottlenecks due to overlapping crawls.
SSACrawlFreshness Collects data for Crawl Freshnesh Dashboard Report Produces a Dashboard report indicating how fresh the content in the Search Farm is.
SSAQueryLatency Tests Query Totals and latency over last 15 minutes Allows Search Admin to monitor and receive alerts based on Query Performance.. Test will produce an alert if specified thresholds aren't met.