Limit % CPU usage? (VMware?)

MegaVovaN

Diamond Member
May 20, 2005
4,131
0
0
Hello all,

I run windows 7. On it is VMware workstation with several VMs. I would like to limit percentage of physical CPU that certain apps within each VM use.

Is there a program to do that?

According to my research VMware ESX Server can do this, but AFAIK it wont run on top of my windows 7 - it will install on bare metal, and I would prefer to avoid that.

Thank you in advance,
MegaVovaN
 

theevilsharpie

Platinum Member
Nov 2, 2009
2,322
14
81
You can define how many cores a VM has, but otherwise, there's no direct way to limit CPU resources to a VM on Windows 7.

The best alternative would be to limit CPU usage of the application in the VM.
 

MegaVovaN

Diamond Member
May 20, 2005
4,131
0
0
I'm running a video game called Diablo 2.

Each copy of the game brings others to crawl, since game is made to consume as much CPU as possible. I have a E6750 Core 2 Duo, which is much more than enough to run Diablo. Yet I run 3 copies of it (each one in different VM) and all slows down to a crawl.
 

yinan

Golden Member
Jan 12, 2007
1,801
2
71
The reason you are running into this problem is virtual machines are not made to run 3d graphics well. They are as of right now, designed to run servers. Yes, VMware workstation does offer directx, but the video card that gets presented to the workstation is very basic. It will not run it well. All the major Virtualization vendors are aware of this and are trying to fix it.
 

theevilsharpie

Platinum Member
Nov 2, 2009
2,322
14
81
The reason you are running into this problem is virtual machines are not made to run 3d graphics well. They are as of right now, designed to run servers. Yes, VMware workstation does offer directx, but the video card that gets presented to the workstation is very basic. It will not run it well. All the major Virtualization vendors are aware of this and are trying to fix it.

This isn't really the problem so much as older games always seem to use 100% of the CPU.

Also, Diablo II can use software rendering.
 

MegaVovaN

Diamond Member
May 20, 2005
4,131
0
0
A quick Google search turned up a blog post that may assist you.

http://grandstreamdreams.blogspot.com/2008/07/windows-cpu-throttling-techniques.html

Thank you so much! This looks like it could work :) I am going to try Process Lasso ( http://www.bitsum.com/prolasso.php ) when I have time. It promises to be able to restrict CPU resources for the game.

RE: graphics card: Diablo 2 is very old game. Max resolution it supports is 800x600. It will run on pretty much any hardware, so I think the issue is in it gobbling up all CPU for itself (one Diablo copy runs just fine in a VM, but 2 VMs with one d2 copy in each both are slow), not insufficiency of the VMware video card.

RE: software rendering: I am running Diablo in window mode. Would that be software mode? I'll try running it's built in "video test" program and see if it will let me select software mode.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Is there a program to do that?

No, because a CPU is either executing something or it's not. The percentages that you get from things like taskmgr are averages over certain timeframes. For example, if a process' timeslice is 20ms and it only executes for 10ms then taskmgr will display 50% for it.

As for Process Lasso, I wouldn't be willing to try it myself...

Did you read this: http://www.bitsum.com/docs/pl/about_CPU_throttling.htm ?
 

boran

Golden Member
Jun 17, 2001
1,526
0
76
Not to derail the thread. But Why are you running multiple instances of diablo on one machine ? On one lan I could understand ... But on one machine ?
enlighten me please.
 

MegaVovaN

Diamond Member
May 20, 2005
4,131
0
0
No, because a CPU is either executing something or it's not. The percentages that you get from things like taskmgr are averages over certain timeframes. For example, if a process' timeslice is 20ms and it only executes for 10ms then taskmgr will display 50% for it.

As for Process Lasso, I wouldn't be willing to try it myself...

Did you read this: http://www.bitsum.com/docs/pl/about_CPU_throttling.htm ?

I read it, and I understand Process Lasso will slow down the offending process (Diablo 2). Isn't it what I need? Slow down Diablo so system has more resources to run other processes (other d2 copies)?

By the way there used to be a launcher program for Diablo called d2loader (it's use now on Battle.net is bannable!). This program had -sleep switch (I think) which made it possible to run 4 diablo 2 copies at once without a problem... So there IS a solution to my problem [several instances refusing to play along nicely and divide the CPU]

Not to derail the thread. But Why are you running multiple instances of diablo on one machine ? On one lan I could understand ... But on one machine ?
enlighten me please.

No problem. Diablo 2 is a RPG game. There you have characters and items. When you play online - in Battle.net, sometimes you want to transfer items from one character to another. For that, you need to get both characters in same online game, thus need 2 instances of Diablo, either on separate computers or on same PC.

Having several characters controlled by same player (taking turns between chars) is useful in game: for example you can use Barbarian to cast a spell that increases life/mana for all characters in your party, and then leave Barb idle while you fight with another character using second copy of Diablo.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
I read it, and I understand Process Lasso will slow down the offending process (Diablo 2). Isn't it what I need? Slow down Diablo so system has more resources to run other processes (other d2 copies)?

By the way there used to be a launcher program for Diablo called d2loader (it's use now on Battle.net is bannable!). This program had -sleep switch (I think) which made it possible to run 4 diablo 2 copies at once without a problem... So there IS a solution to my problem [several instances refusing to play along nicely and divide the CPU]

If the program has a -sleep parameter that's the best solution because, if the name is correct, it causes the game to sleep when nothing is happening. Without that it likely continues to poll everything or something which is why it ends up taking up 100%
 

MegaVovaN

Diamond Member
May 20, 2005
4,131
0
0
If the program has a -sleep parameter that's the best solution because, if the name is correct, it causes the game to sleep when nothing is happening. Without that it likely continues to poll everything or something which is why it ends up taking up 100%

Diablo itself does not have a -sleep parameter.

A "hack" (third party program) for it had this parameter, but now the hack is being banned for by Blizzard, so I am stuck with my problem in OP.

If you're curious, here are all Diablo parameters: http://forums.d2jsp.org/topic.php?t=25485248&f=21