1 / 37

Load Balancing and Intelligent Load Balancing

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

yorick
Download Presentation

Load Balancing and Intelligent Load Balancing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Load Balancing and Intelligent Load Balancing Jesús González Escalation Engineer

  2. Deep understanding of load balancing architecture Troubleshooting techniques Identify the root cause of any LB problem Objectives

  3. 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

  4. Architecture

  5. Architecture Data Collector DC - Dynamic Store DS LmsSS.dll - IMA Subsystem LMS20Rules.dll - System counters MFRules.dll - XA counters PDH.dll - Performance Data Helper

  6. 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

  7. Data Collector UpdatesServer load - CPU Load example • Data Collector Server Load % : Time XenApp 5 minutes

  8. Data Collector UpdatesXA CPU Load != Task Manager CPU Load • CPU load • XA = 25% • Task Manager = 1%

  9. 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

  10. 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

  11. pdhStatus = PdhAddCounter ( hQuery, "\\Processor(0)\\% Processor Time", 0, &hCounter); YOU MUST CALL THE PERFORMANCE COUNTER BY ITS NAME Performance Data Helper – C++ Example

  12. \\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

  13. Performance Data Helper - Registry

  14. English Perfc009.dat Perfh009.dat German Perfc007.dat Perfh007.dat Performance Data Helper – File system

  15. Performance Data Helper - perfmon

  16. Performance Data Helper - IMA IMA (At start up)

  17. Citrix and the PDH We also provide Performance counters

  18. HKLM\SYSTEM\CurrentControlSet\Services\IMAService\PerformanceHKLM\SYSTEM\CurrentControlSet\Services\IMAService\Performance Citrix and the PDH

  19. Where can it go wrong?

  20. 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

  21. 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)

  22. 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)

  23. 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

  24. Load Throttling- Low logon rate • Server load if Low logon rate

  25. 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

  26. Load Throttling • Server load at Peak logon times

  27. 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

  28. 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

  29. 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)

  30. 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

  31. Troubleshooting

  32. Troubleshooting Data Collector DC LmsSS.dll Full Load LMS20Rules.dll PDH.dll XXXXXXXXXXXXXXXX \\Processor(_Total)\\% Processor Time

  33. 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

  34. 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

  35. 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

  36. 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…

More Related