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?
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
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
Thank you both...
I will add that site to my (ever growing) list of VMware-related bookmarks.
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:
You are using an older version of ESX than you think.
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
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
VMware Communities User Moderator
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