1 / 58

A scientific approach to XenApp farm sizing

A scientific approach to XenApp farm sizing. Helge Klein. Who is. Helge Klein?. CTP, MVP Author of SetACL and Delprof2 Independent consultant and developer Architect of what later became Citrix Profile Management. What is he. talking about?.

lee
Download Presentation

A scientific approach to XenApp farm sizing

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. A scientific approach toXenApp farm sizing Helge Klein

  2. Who is Helge Klein? CTP, MVP Author of SetACL and Delprof2 Independent consultant and developer Architect of what later became Citrix Profile Management

  3. What is he talking about? Scientifically sound farm sizing methodology How to calculate farm capacity

  4. Methodology 1. Determine capacity of existing farm 2. Measure load and identify bottlenecks 3. Calculate capacity of new farm

  5. Example

  6. Where to get the numbers? 1. Data collection 2. Observation 3. Measurements 4. Calculation

  7. Data collection

  8. for /f %i in (AllFarmServers.txt) do wmic /node:%i cpu get name, maxclockspeed, systemname, description, manufacturer, revision /format:csv >> CPUs.txt Collect CPU data Create AllFarmServers.txt with qfarm Use resulting list to determine server model

  9. Srv001,x86 Family 15 Model 4 Stepping 10,GenuineIntel,3400,Intel(R) Xeon(TM) CPU 3.40GHz,1034,Srv001 Srv001,x86 Family 15 Model 4 Stepping 10,GenuineIntel,3400,Intel(R) Xeon(TM) CPU 3.40GHz,1034,Srv001 Srv001,x86 Family 15 Model 4 Stepping 10,GenuineIntel,3400,Intel(R) Xeon(TM) CPU 3.40GHz,1034,Srv001 Srv001,x86 Family 15 Model 4 Stepping 10,GenuineIntel,3400,Intel(R) Xeon(TM) CPU 3.40GHz,1034,Srv001 Srv002,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv002 Srv002,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv002 Srv002,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv002 Srv002,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv002 Srv002,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv002 Srv002,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv002 Srv002,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv002 Srv002,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv002 Srv003,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv003 Srv003,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv003 Srv003,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv003 Srv003,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv003 Srv003,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv003 Srv003,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv003 Srv003,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv003 Srv003,x86 Family 6 Model 44 Stepping 2,GenuineIntel,2666,Intel(R) Xeon(R) CPU E5640 @ 2.67GHz,11266,Srv003 Srv004,x86 Family 6 Model 26 Stepping 5,GenuineIntel,2666,Intel(R) Pentium(R) III Xeon-Prozessor,6661,Srv004 Srv004,x86 Family 6 Model 26 Stepping 5,GenuineIntel,2666,Intel(R) Pentium(R) III Xeon-Prozessor,6661,Srv004 Srv004,x86 Family 6 Model 26 Stepping 5,GenuineIntel,2666,Intel(R) Pentium(R) III Xeon-Prozessor,6661,Srv004 ... The result

  10. RAM, NICs hard disks Could be determined via WMI, too Often knowing the server model is sufficient Components per model often identical

  11. Spec sheet

  12. Resulting data

  13. Observation

  14. How many users are logged on? Load of CPU, RAM, NICs Individual processes with a lot of RAM or CPU?

  15. Physical Disk\% Disk Time Physical Disk\Avg. Disk Queue Length „Time“ is equivalent to flickering of hard disk LED Disk queue length: Number of waiting IOs

  16. Hypothesis: farm is memory limited Limiting factor will differ between farms

  17. Measurements Tool: Perfmon Next slides: relevant counters

  18. Terminal Services\Active Sessions Terminal Services\Inactive Sessions Terminal Services\Total Sessions System\Processes General system information

  19. PhysicalDisk(_Total)\% Disk Time PhysicalDisk(_Total)\Avg. Disk Queue Length PhysicalDisk(_Total)\Disk Reads/sec PhysicalDisk(_Total)\Disk Writes/sec PhysicalDisk(_Total)\Avg. Disk sec/Transfer Hard disk activity Load, queue length, operations per second, latency

  20. Processor(_Total)\% Processor Time Memory\Available MBytes Network Interface(*)\Bytes Total/sec CPU, RAM and network RAM: total amount must be known!

  21. logman create counter TSPerf -f csv -cf C:\PerfLogs\Counters.txt -o C:\PerfLogs\Server13.csv -si 60 -rf 24:00:00 Automation Create and start data collector set. Format CSV, performance counters are read from C:\PerfLogs\Counters.txt, output file is C:\PerfLogs\Server013.csv, 60 second sampling interval, duration 24 hours.

  22. logman create counter TSPerf -f csv -cf C:\PerfLogs\Counters.txt –o C:\PerfLogs\Server13.csv -si 60 -rf 24:00:00-s Server13 Execution on remote computer Server13

  23. for /f %i in (Servers.txt) do logman create counter TSPerf -f csv -cf C:\PerfLogs\Counters.txt -o C:\PerfLogs\%i.csv -si 60 -rf 24:00:00 -s %i Many servers One computer name per line in Servers.txt

  24. Analyzing the measured data

  25. CPU and sessions Server 37 Moderate load during logon phase, afterwards even less A lot of overcapacity

  26. CPU and sessions Server 89

  27. Overlaying the CPU load of many servers Easily verify the analyis

  28. HDD and sessions Server 37 Moderate load, peaks during logon phase Full load at aprox. 200

  29. HDD and sessions Server 89

  30. Overlaying the HDD load of many servers Easily verify the analyis

  31. RAM and sessions Server 37 Continually increasing load, maximum in the afternoon Available RAM must not go near zero (because of disk cache) High load

  32. RAM and sessions Server 89

  33. Overlaying the memory load of many servers Easily verify the analyis

  34. Network and sessions Server 37 200 = 2 MB/s Average rate < 200 KB/s Very low load, a lot of overcapacity

  35. Network and sessions Server 89

  36. Overlaying the network load of many servers Easily verify the analyis

  37. Hypothesis confirmed: farm is limitedby available memory CPU load: low, network: negligible hard disk: moderate

  38. Calculating farm capacity

  39. Normalizing CPU performance How to compare performance of different CPUs? Benchmarking is difficult Better: Moore’s law (doubling of performance every 18-24 months) Surprisingly accurate (amongst other things because it is a self-fulfilling prophecy)

  40. Performance after time (in months) Assumed performance doubling every 21 months Oldest CPU in farm = 1,0

  41. Farm capacity: 1250 normalized CPUs 0.63 CPUs / user

  42. Hard disk performance = • IOPS With many concurrent accesses transfer rate is mostly irrelevant More important: IOPS (operations per second) Exact number depends on measurement method  do not believe vendors

  43. PhysicalDisk(_Total)\Disk Reads/sec PhysicalDisk(_Total)\Disk Writes/sec IOPS measurement with Perfmon Read and write IOPS may be very different

  44. Read and write IOPS Average: ~15 Including spikes: 30

  45. Farm capacity: 7300 IOPS 3,7 IOPS / user

  46. RAM – how much do we have? We need total RAM that is available for user sessions

  47. Calculate RAM used by the OS (Server 2003)

More Related