370 likes | 604 Views
Load Balancing and Intelligent Load Balancing. Jesús González Escalation Engineer. Deep understanding of load balancing architecture Troubleshooting techniques Identify the root cause of any LB problem. Objectives. Architecture Data Collector Updates - Examples Performance Data Helper
E N D
Load Balancing and Intelligent Load Balancing Jesús González Escalation Engineer
Deep understanding of load balancing architecture Troubleshooting techniques Identify the root cause of any LB problem Objectives
Architecture Data Collector Updates - Examples Performance Data Helper Citrix and the PDH Where can it go wrong? Black hole effect (Load Throttling - Intelligent Load Balancing) Some servers get all the connections Full load after installing an MUI Troubleshooting Agenda
Architecture Data Collector DC - Dynamic Store DS LmsSS.dll - IMA Subsystem LMS20Rules.dll - System counters MFRules.dll - XA counters PDH.dll - Performance Data Helper
Data Collector is updated every 30 s Only when the change in the load evaluator is bigger than 5% Every 5 minutes we send a full update Connection logon or logoff Data Collector Updates
Data Collector UpdatesServer load - CPU Load example • Data Collector Server Load % : Time XenApp 5 minutes
Data Collector UpdatesXA CPU Load != Task Manager CPU Load • CPU load • XA = 25% • Task Manager = 1%
Data Collector UpdatesAt Logon time - Default load evaluator WI/XML Data Collector Server A Ctxnotif.dll IMA MFSrvSS.dll Dynamic Store LMSSS.DLL X IMA BIAS ICA Client Server B Server B Server A Server A
The performance data helper interface calls the registry interface to retrieve performance data Uses the PDH.DLL to access the PDH API http://msdn2.microsoft.com/en-us/library/aa373083.aspx Performance Data Helper – API
pdhStatus = PdhAddCounter ( hQuery, "\\Processor(0)\\% Processor Time", 0, &hCounter); YOU MUST CALL THE PERFORMANCE COUNTER BY ITS NAME Performance Data Helper – C++ Example
\\Processor(_Total)\\% Processor Time \\System\\Context Switches/sec \\Memory\\% Committed Bytes In Use \\Memory\\Page Faults/sec \\Memory\\Pages/sec \\PhysicalDisk(_Total)\\Disk Bytes/sec \\PhysicalDisk(_Total)\\Disk Reads/sec \\PhysicalDisk(_Total)\\Disk Writes/sec Citrix and the PDH
English Perfc009.dat Perfh009.dat German Perfc007.dat Perfh007.dat Performance Data Helper – File system
Performance Data Helper - IMA IMA (At start up)
Citrix and the PDH We also provide Performance counters
HKLM\SYSTEM\CurrentControlSet\Services\IMAService\PerformanceHKLM\SYSTEM\CurrentControlSet\Services\IMAService\Performance Citrix and the PDH
Black hole effect Problem Solution At Peak logon times a recently boot up server will get all connections and might become unresponsive Cause: Server is unable to update the DC Load Throttling Intelligent load balancing HKLM\SOFTWARE\Citrix\IMA\LMS\ (DWORD ) UseILB = 1 (DWORD ) ILBMultiplier = 2
Before Intelligent Load Biasing Default BIAS = 10000/100 = 100 0 sessions 1 session 2 sessions 1 session comes 2nd session comes Max Load (10000) Max Load (10000) Max Load (10000) Current Load (200) BIAS Current Load (100) BIAS Current Load (0)
Intelligent Load Biasing Load = [(Max Load – Current Load) / ILBMultiplier] + Load 0 sessions 1 session 2 sessions 1 session comes 2nd session comes Max Load (10000) Max Load (10000) Max Load (10000) Current Load (7500) ILBMultiplier (2) BIAS Current Load (5000) ILBMultiplier (2) BIAS Current Load (0)
Load Throttling- Low logon rate ICA Client Data Collector Server A Dynamic Store Server B Server Load BIAS Server A 0 100 0 (10000-0)/2+0 = 5000 0 100 (10000-0)/2+0 = 5000 0 Server B
Load Throttling- Low logon rate • Server load if Low logon rate
Load Throttling- Black hole effect ICA Client Data Collector Server A Dynamic Store Server B Server Load BIAS Server A 0 (10000-0)/2+0 = 5000 (10000-7500)/2+7500 = 8750 0 (10000-5000)/2+5000 = 7500 6000 (10000-6000)/2+6000 = 8000 0 Server B
Load Throttling • Server load at Peak logon times
Upgrade to W2K3 causes full load Problem Solution English W2K \\System\\% Total Processor Time English W2K3 \\Processor(_Total)\\% Processor Time In W2K3, use \\Processor(_Total)\\% Processor Time
Some servers get all the connections Problem Solution • 1 server all the connections Cause: Fail to read performance counters causes Load = 0 Fail to read performance counters causes Load = 10000
Full load after installing an MUI Problem Solution • After installing MUI with advance load evaluators it results in load = 10000 Cause: -> perfc007.dat (German) perfc009.dat (English) HKLM\Software\Citrix\IMA\LMS\ EnableTranslation=1 (dword)
Jesús González in a German restaurant English Menu (perfc009.dat) 22 . Vegetable Soup German Menu (perfc007.dat) 22. Gemüsensuppe Full load after installing an MUI
Troubleshooting Data Collector DC LmsSS.dll Full Load LMS20Rules.dll PDH.dll XXXXXXXXXXXXXXXX \\Processor(_Total)\\% Processor Time
TroubleshootingFailing to read performance counters => full load • Use procmon (filemon) while restarting IMA • Make sure the correct perfcXXX.dat file can be accessed. • Consider rebuilding performance counters • http://support.microsoft.com/kb/300956/en-us • Check that no performance counter are disabled • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfDisk\Performance] • "Disable Performance Counters"=dword:00000001 • Use CDFControl to gather CDF traces • http://support.citrix.com/article/CTX111961
LMSRuleDll_Interface::CreatePDHQuery() ERROR!!!!! rc = -1073738823 -1073738823 -> FFFFFFFFC0000BB9 (HEX) http://msdn2.microsoft.com/en-us/library/aa373046.aspx “The specified counter could not be found” TroubleshootingCDF Traces example
Deep understanding of load balancing BIAS, PDH… Understanding Intelligent load balancing Load Throttling Typical scenarios Full load versus 0 load, MUI… Troubleshooting techniques So far we are able to resolve all the problems that arrive to EMEA tech support with those tips Summary
Session surveys are available online at www.citrixsynergy.com starting Thursday, 7 October Provide your feedback and pick up a complimentary gift card at the registration desk Download presentations starting Friday, 15 October, from your My Organiser Tool located in your My Synergy Microsite event account Before you leave…