Search Engineers Brian Pendergrass Kristopher Loranger Planning the trip: Architecture, Ops, and Admin Automate monitoring of SSA Analyze performance reports Review usage reports for trends Result Sources / Query Rules / Refiners Managing performance Backup / DR Security updates + Cumulative updates Sizing / Scaling (and Migrations) Relevancy tuning Search Architecture SharePoint2013 SharePoint 2013Search SearchArchitecture Architecture Overview Overview Search Admin *noderunner.exe Index Index Index Index Index Index Index Index Index Index Index Index mssearch.exe * noderunner.exe * noderunner.exe *Juno Components (noderunner.exe) noderunner.exe * noderunner.exe w3wp.exe Architecture: Deployment Best Practices 2 Disable Antivirus scanning for all Search Data 1 volumes (and for all Search processes) Enable “High Performance” power plan (and in BIOS, enable OS control of CPU power throttling) Use a time zone without daylight savings time 4 Only start Search Query & Site Settings ( SQ&SS) on servers with a Query Processing Component Stop all non-search Service Instances (e.g. WFE) At install, set “DataDirectory” to non-system drive Separate I/O intensive paths to dedicated drives SharePoint: OS, ULS/logging, Search Data/Index SQL Server: OS, DBs, transaction logs, tempDB For virtual disks, use fixed size VHDs only Ensure IOPS requirements 3 Avoid disk compression and adaptive read-ahead Format Data disk volumes as NTFS with 64kB blocks Disable OS from “indexing” contents/properties 1 Gbit/s is minimum, 10 Gbit/s is better Multiple network adapters are supported Architecture: The Options in Broad Strokes One single search across cloud and on-premises content, with capabilities like Delve for both Implementing Next Generation SharePoint Hybrid Search with the Cloud Search Service Application Wednesday, May 6th 05:00PM - 06:15PM Architecture: Azure IaaS and DR Microsoft Azure SP Search “On Prem” Warm standby or Cold Standby 0 Cloud Service VPN Gateway Restore SSA Cloud Service Virtual Network SharePoint with Monitoring 2013SCOM: SearchCrawl Architecture Components Overview noderunner.exe Index Index Index Index Index Index Index Index Index Index Index CC Index Alert: Disk Full Crawler Threshold: Search Gatherer Projects SharePointServerSearch\Transactions Waiting > N SharePoint with Monitoring 2013SCOM: SearchContent Architecture Processing Overview noderunner.exe Index Index Index Index Index Index Index Index Index Index Index CPC Index Alert: Gatherer Content Processing connector Threshold: Search Flow Statistics\Input Queue Full Time > 1000 SharePoint with Monitoring 2013SCOM: SearchIndex Architecture Components Overview noderunner.exe Index Index Index Index Index Index Index Index Index Index Index Index Index Alert: Missing partition Threshold: Search Index\DocsPerIndexCell = 9-9.5Mill SharePoint with Monitoring 2013SCOM: SearchQuery Architecture Processing Overview noderunner.exe Index Index Index Index Index Index Index Index Index Index Index QPC Index Alert: Service availability query processing Threshold: Search Query Processing\Failed QPS > 3 SharePoint with Monitoring 2013SCOM: SearchAnalytics Architecture Processing Overview noderunner.exe Index Index Index Index Index Index Index Index Index Index Index APC Index Alert: Analytics analysis: failed to start Threshold: Search Analysis Engine Analytics Processing Components\LongRunningTasks > 6 hours Architecture: Search Topology Search Admin … owstimer “Unseen” Admin Tag: xmnv Product: SharePoint Foundation Level: Medium Message: Name=Timer Job job-application-server-admin-service 3ec1589c-6cc5-9096-7fea-7345dcae1238 Tag: dkd5 Product: SharePoint Server Search Message: synchronizing search service instance Level: High 3ec1589c-6cc5-9096-7fea-7345dcae1238 mssearch Application Server Administration Service Timer Job owstimer.exe SharePoint Server Search Service Instance Tag: drx4 Category: GatherSvc Level: High Message: initializing gatherer application –SSA-ID-crawl-0 run once a minute on 3ec1589c-6cc5-9096-7fea-7345dcae1238 ALL Search Servers Tag: agwve Product: SharePoint Server Search Message: Synchronizing legacy admin Search Admin Level: Medium SearchAdmin.svc Master Merge? Synchronize Constellation owstimer Tag: aie8r Product: SharePoint Server Search Level: Medium Message: MasterMergeScheduleManager: Start trigger checks 3ec1589c-6cc5-9096-7fea-7345dcae1238 Tag: aih3f Category: Search Component Message: Retrieving configuration from database AdminComponent, 1904, Constellation Level: Verbose 3ec1589c-6cc5-9096-7fea-7345dcae1238 Tag: ajncw Product: SharePoint Server Search Level: Medium Message: [ Constellation ] Nodes: QPC1, QPC2, CPC1, CPC2, APC2, APC1, Index2, Index1, AdminComponent2, AdminComponent1 3ec1589c-6cc5-9096-7fea-7345dcae1238 From Central Admin: Step 1… PowerShell: How to view the status of the SharePoint 2013 search service Script uses detailed Component “Health Reports” from Get-SPEnterpriseSearchStatus to provide a more complete picture (modified to show Application Server Administration Services Timer Job status) Medium Topology: 40M Items 4CPU/8GB/100GB 4CPU/16GB/300GB 4CPU/16GB/500GB 4CPU/16GB/500GB 4CPU/16GB/500GB 4CPU/16GB/500GB 4CPU/8GB/100GB 4CPU/16GB/300GB 4CPU/16GB/500GB 4CPU/16GB/500GB 4CPU/16GB/500GB 4CPU/16GB/500GB Estimating Load: The QPC may not be “free” 1 query per second (10 million items in index) *Guidance (per CPU Core) 4 queries per second Complex or high number of transformations can decrease this rate and add to CPU load Query 1 Query 2 2 queries per second (5 million items in index) Query 3 Query 4 Query 5 5 queries per second (1 million items in index) 20 QPS ~9 ~5 ~3 QPS Components:Performance Components: PerformanceProfile ProfileCheat Cheat Sheet Sheet Component Crawl Component Content processing (CPC) Analytics processing (APC) Index Component Query processing (QPC) Search Admin Component 1. 2. 3. 4. CPU MEDIUM Network 1,2 HIGH HIGH 4 MEDIUM 4 HIGH 5 MEDIUM 7 MEDIUM LOW Crawler: With PerformanceLevel "maximum” (the default in SP2013), threads are scheduled with "normal” priority (with max 256 threads-per-component) Crawler: Impact increases with the number of distinct hosts being crawled Crawler: Gathered items are temporarily stored to disk and shared for CPC CPC and APC threads scheduled with "below normal” priority RAM MEDIUM 3 LOW 5. 6. 7. 8. 9. MEDIUM 2 HIGH MEDIUM HIGH MEDIUM 2,3 Disk MEDIUM HIGH 5 6 8 MEDIUM HIGH MEDIUM 9 Properly Scale and LOW Deploy Enterprise Search APC: With Map/Reduce distribution, network load grows quadratically with the number of APC nodes, but dilutes the disk storage requirements per APC Index: Ensure the storage meets the IOPS requirements QPC: CPU load increases with queries-per-minute and/or many query rules QPC: Network IOPS increases linearly with number of index partitions and QPS Admin: Memory footprint increases with topology size Friday, May 8th 12:30PM - 01:45PM Availability: Patching with ”Upgrade Domains” …assumes idle crawls Partition #0 Partition #1 Partition #2 Partition #3 4CPU/8GB/100GB 4CPU/16GB/300GB 8CPU/24GB/500GB 4CPU/16GB/500GB 4CPU/16GB/500GB 4CPU/16GB/500GB 4CPU/8GB/100GB 4CPU/16GB/300GB 4CPU/16GB/500GB 8CPU/24GB/500GB 4CPU/16GB/500GB 4CPU/16GB/500GB Adm 0 1 2 3 Relevancy and Rank: An Opportunity Targeted Queries Refiners, Result Sources/Blocks, Promoted Results Content Enrichment Manipulate Content Before It Gets Indexed Thesaurus and Entities Synonyms and Custom Entity Extraction Query Transformations Re-write the Query, Action Words, Dynamic Rank Identify Trends: Popular, Abandoned, and No Result Queries Administration: Query Rules Clean Up Test-BestBetQueryRules.ps1 .\Test-BestBetQueryRules.ps1 -Delete -Mode InvalidRules \ -PathToCSV .\InvalidBestBetQueryRules-SSA.csv Found 25 query rules and 1 Best Bets at SSA level Deleted 1 Best Bets and 0 Query Rules Done. The Life of a Query Search Query & Site Settings SSA Proxy Server-side UI (Web Parts) w3wp.exe Query CSOM (SearchService.svc) Query OM Search Query & Site Settings Application or Farm Boundary Follow the Query: Start at WFE, follow to SQ&SS (SearchService.svc) w3wp - wfe w3wp.exe Tag: dka1 Area: SharePoint Server Search Category: Query Message: SearchServiceApplicationProxy::Execute--Proxy Name: Search Service Application Proxy EndPoint: http://querySrv-1:32843/-SSA-/SearchService.svc w3wp.exe Level: High SQ&SS (SearchService.svc) w3wp w3wp.exe SSA Proxy Server-side UI (Web Parts) w3wp.exe Query CSOM (SearchService.svc) Query OM SQ&SS Application or Farm Boundary Follow the Query: …to a QPC with FewestQueries w3wp.exe Tag: ac3iu Area: SharePoint Server Search Category: Query Level: High Message: Ims::EndPoints: Candidate FewestQueries: net.tcp://querySrv-1/E9862A/QueryProcessingComponent1/ImsQueryInternal, status: Succeeded, queries-in-progress: 0 SQ&SS (SearchService.svc) noderunner w3wp.exe Tag: aizc0 Area: Search Category: Query Processing Level: High Message: 'Microsoft.Office.Server.Search.Query.Ims.ImsQueryInternal : New request: Query text 'ninja cat riding fire breathing unicorn', Query template '{searchboxquery}'; HiddenConstraints: ; SiteSubscriptionId: 00000000-0000-0000-0000-000000000000 SSA Proxy Server-side UI (Web Parts) w3wp.exe Query CSOM (SearchService.svc) Query OM SQ&SS Application or Farm Boundary Follow the Query: …to a QPC with FewestQueries w3wp.exe Concepts: Inside the Productivity Search Flow ProductivitySearchFlowExecutor QueryRuleConditionMatching (received from the SSA Proxy) People Search Flow QueryTransformer QueryRouter Remote Sharepoint Flow BestBet Provider Flow ExchangeSearchProvider Flow ResultsMixer SharepointSearchProvider Flow PersonalFavoritesProvider Flow LayoutsSelector Thread [A] Thread [n] Cell 0 SQ&SS (SearchService.svc) w3wp.exe Cell 1 Cell 1 SQ&SS Cell 2 Cell 2 (SearchService.svc) SSA Proxy noderunner w3wp.exe Tag: ajkph Area: Search Category: Search Component Level: High Message: Microsoft.Ceres.SearchCore.Query.MarsLookupComponent.LookupService. QueryClient.QueryExecutor: ExecuteQuery timings for correlation: <correlationID>, task dispatch 0 ms, blocked waiting 180 ms, total hits: 14998, with dupes: 16361, 2 tasks: ( cell: I.0.0 at IndexComponent2, total task time: 179 ms, …etc… cell: I.1.1 at IndexComponent4, total task time: 162 ms, …etc… ) Server-side UI (Web Parts) Cell 0 Query CSOM Partition #1 Query OM Partition #0 Application or Farm Boundary Follow the Query: Response from each Cell w3wp.exe Cell 0 SQ&SS (SearchService.svc) w3wp.exe Cell 1 Cell 1 SQ&SS Cell 2 Cell 2 (SearchService.svc) SSA Proxy w3wp - wfe w3wp.exe Tag: dk91 Area: SharePoint Server Search Category: Query Message: SearchServiceApplicationProxy::Execute—Id: Elapsed Time: 458 IMSProxyTime: 399 QP Time: 372 Client Type AllResultsQuery Server-side UI (Web Parts) Cell 0 Query CSOM Partition #1 Query OM Partition #0 Application or Farm Boundary Follow the Query: Overall timings at the WFE w3wp.exe Level: High Monitoring: ”Overall" timings at the WFE “Backend” (QP Time) “Object Model” Monitoring: Breaking Out of the Backend Time Monitoring: Breaking Out of the Backend Time cell: I.0.0 at IndexComponent2, total task time: 179 ms cell: I.1.1 at IndexComponent4, total task time: 162 ms …etc… Query and Index Availability: Partial Results Partition #0 Partition #1 Cell 0 Cell 0 Cell 1 Cell 1 $ssa=Get-SPEnterpriseSearchServiceApplication $ssa.AllowPartialResults = $true $ssa.Update() Crawl Health Report: Crawl Load How many transactions are running at this time… Crawl Health Report: Crawl Latency How fast items move through each stage… Crawl Health Report: Content Processing Activity How fast items move through each sub-stage Concepts: Submitting to the Index Partition 0 103 102 101 103 0 Replica 0 noderunner noderunner.exe 102 0 Replica 1 “Primary” noderunner.exe Tag: ajj8t Category: Search Component Level: Verbose Message: GenerationDispatcher[SP953b8ca4ed25]: CommitGeneration GID[103] in 377 ms 101 Passive “Indexing” Activity: The Impact on Resources Antivirus Exclusions? Isolated Data Paths? CPUs Parked? Network Saturated? IOPS Requirements? (A Peek Inside the Index System Using PowerShell) Re-Living the Memories… Automate monitoring of SSA Analyze performance reports Review usage reports for trends Result Sources / Query Rules / Refiners Managing performance Backup / DR Security updates + Cumulative updates Sizing / Scaling (and Migrations) Relevancy tuning SearchEngineers@microsoft.com http://myignite.microsoft.com