VMware Cloud Community
mmitchum
Contributor
Contributor

Huge performance gain in 3.5 using "workload=TerminalServices" ?

We are running WebLogic 10.2 (32bit) on a Windows 2003 R2 guest running on ESX 3.5. Initial performance was abyssmal -- WebLogic startup took in excess of 1hr 20mins on the VM ... while it only took about 9 minutes on a notebook PC. After some research, I gambled on adding the "workload = TerminalServices" line to the VMX file and the startup time dropped to under 3 minutes.

Everything that I have found says that the value of this VMX tweak is diminished with the release of 3.5, but my results were so drastically improved/different that I wanted to share them.

My question: How can I find out more about what this tweak does "under the covers"? Is there a good source for other VMX optimizations?

Tags (3)
0 Kudos
7 Replies
oreeh
Immortal
Immortal

Is there a good source for other VMX optimizations?

There's no official documentation on the different VMX paramaters besides the KB and the manuals and there most likely never will be.

To get an idea about advanced VMX parameters and their usage take a look at http://sanbarrow.com

0 Kudos
TomHowarth
Leadership
Leadership

Firstly welcome to the forums

Is there a good source for other VMX optimizations?

The main thing to remember is that VMware is pretty tight lipped about VMX modifications, any changes you do do to the file could negate any support in that particular Guest so remember to make take a backup/snapshot of the Guest, and a backup of the VMX before changing anything,

as Oreeh has already stated is the best site for vmx modifications, not all of those on the site relate to ESX though

Tom Howarth

VMware Communities User Moderator

Tom Howarth VCP / VCAP / vExpert
VMware Communities User Moderator
Blog: http://www.planetvm.net
Contributing author on VMware vSphere and Virtual Infrastructure Security: Securing ESX and the Virtual Environment
Contributing author on VCP VMware Certified Professional on VSphere 4 Study Guide: Exam VCP-410
0 Kudos
mmitchum
Contributor
Contributor

Thank you both...

I will add that site to my (ever growing) list of VMware-related bookmarks.

0 Kudos
oreeh
Immortal
Immortal

FYI: this thread has been moved to the Performance forum.

Oliver Reeh[/i]

[VMware Communities User Moderator|http://communities.vmware.com/docs/DOC-2444][/i]

0 Kudos
drummonds
Hot Shot
Hot Shot

Hello,

Well, you stumped me on this question. I ran down the engineers that implemented this fix back in the 2.x days and can now give you some somewhat strange news: this setting does nothing in ESX 3 and beyond.

Prior to ESX 3, the amount of memory stored for shadow page tables was fixed at the VM's boot time. Because Citrix-like workloads create many processes that all have their own memory space which all required their own shadow page tables, the static memory allocation for shadow page tables would be exhausted quickly. When memory ran short Bad Things happened to performance. So, including a workload-specific switch ("workload=TerminalServices") notified the VMkernel that more memory was going to be needed for that VM to maintain the shadow page tables. But this over-allocation could result in some waste.

The ideal solution was implemented in ESX 3 (and beyond) through the dynamic allocation of memory for shadow page tables. This fixed the performance problem and eliminated the over-allocation of memory that was due to "workload=TerminalServices". In fact, someone just checked and there is no longer any reference in the code to this parameter. I'd be willing to bet that your log files contain a warning that this setting is being ignored. I'm just guessing that, though, as I don't have any developer-level experience.

There remain two possibilities as to why you saw this change:

  1. You are using an older version of ESX than you think.

  2. Something else changed in the test.

Would you mind checking your ESX version and re-running the test with the parameter on and off to confirm?

Scott

More information on my blog and on Twitter: http://vpivot.com http://twitter.com/drummonds
0 Kudos
Ken_Cline
Champion
Champion

I will add that site to my (ever growing) list of VMware-related bookmarks.

I'm sure you've got a long way to go before you catch up to Eric's List of Everything VMware -- check it out

Ken Cline

Technical Director, Virtualization

Wells Landers

VMware Communities User Moderator

Ken Cline VMware vExpert 2009 VMware Communities User Moderator Blogging at: http://KensVirtualReality.wordpress.com/
0 Kudos
mmitchum
Contributor
Contributor

Hi Scott -- I do think you're right... something else had to have changed. During our initial test we included the workload variable, saw the decrease in WebLogic start time immediately, and wrongfully connected the dots. Recently re-ran the Weblogic startup test with the variable NOT included and there very little change in start time. Something else changes, be it ESX workload, SAN throughput, or just a quirk of WebLogic... but we fell for it.

Sorry ffor the trip through the rabbit hole.

-Mitch

0 Kudos