The out-of-control process is not spotted by Process Lasso

Started by alanedney, August 06, 2008, 05:31:54 AM

Previous topic - Next topic

alanedney

I've just installed the trial version of Process Lasso to see if it can fix my problem.
I'm using a quad-core, 64bit Windows 2008 web-server where one process occasionally goes out of control and uses up all the available CPU and all the physical memory (4gb) before sucking up all the virtual memory until the server dies.
It's a Microsoft application called vbc.exe (Visual Basic Compiler). Now, it's only shown in Windows Task Manager Process List if I select "Show processes from all users".
However, Process Lasso doesn't seem to have that option to "Show processes from all users" so it only shows about 10 running processes when there's actually about 70. Does that mean it can't curtail this rogue process as it doesn't appear in the Lasso list of running processes?
Actually, the process went out-of-control a moment ago using up 3gb of RAM in a matter of seconds and I had to manually end the process through Windows Task Manager. Process Lasso didn't show anything unusual apart from the red Processor Use graph spiked but it didn't take any corrective action.
Have I missed something or is Process Lasso unable to control this sort of problem?



Jeremy Collake

#1
Thanks for the question. I do have an answer for you ;). Process Lasso, by default, doesn't show (or manage) the processes of other/system users in Vista when UAC is enabled. While I've decided this default is appropriate, I need to make it easier for users to show all processes. UPDATE: I've made it easier in v3.05 beta 6.

Currently, the option is in the Process Lasso start menu. You should shut down Process Lasso and its core engine, then go to 'Start Menu / Process Lasso / Vista Tools / Show all processes Process Lasso ...'. First, right click this shortcut and change the default working directory to "C:\program files\process lasso" (or wherever you installed PL to) -- as it appears a bug has caused the default working directory to be corrupt. I am going to fix it in v3.05 beta 5, so it may be online by the time you read this. After doing this, right-click it again and select 'Run as Administrator'. Then restart Process Lasso.. you should now see all processes.

UPDATE TO v3.05 beta 6: Changing whether or not each instance Process Lasso should manage ALL processes from ALL users is now set via the InstallHelper application, which is now automatically launched by the installer at install-time.



Software Engineer. Bitsum LLC.

Jeremy Collake

#2
I should also note that an alternate option is installing the process governor as a system service (see Options / General program settings / Process governor startup ...) or run InstallHelper.exe manually if you have UAC enabled, as it will otherwise fail to launch due to the permissions it requires. Balloon tips from the core engine may not function if you do this, but most people don't use them anyway and they are disabled by default.
Software Engineer. Bitsum LLC.

alanedney

Great, thanks for that. I can now view all the processes.
However, the incident of the run-away process (vbc.exe) occured a moment later and while Process Laso listed the process and showed it as using 25% of the CPU it didn't do anything to stop it. As a result it continued on it's quest to eat all the memory on the system. Again, I stopped it manually with Windows Task Manager.
Am I right in thinking that 25% use on a quad-core CPU is the maximum a process can use? If so, surely the process would never reach a critical level of CPU use (say, 90%) to trigger Process Laso to take some action....?

Jeremy Collake

#4
Quote from: alanedney on August 06, 2008, 08:07:05 AM
Great, thanks for that. I can now view all the processes.
However, the incident of the run-away process (vbc.exe) occured a moment later and while Process Laso listed the process and showed it as using 25% of the CPU it didn't do anything to stop it. As a result it continued on it's quest to eat all the memory on the system. Again, I stopped it manually with Windows Task Manager.
Am I right in thinking that 25% use on a quad-core CPU is the maximum a process can use? If so, surely the process would never reach a critical level of CPU use (say, 90%) to trigger Process Laso to take some action....?

Yes, you are right about what is happening. Please lower the default per-process restraint threshold to '20%' or so. I recently raised the default value, to 35%, from 25%. You may also need to lower the TOTAL SYSTEM CPU usage threshold. Both values must be met for restraint to occur, the total system usage must exceed X, and per-process usage must exceed X.

I am going to have to start dynamically calculating the per-process threshold default value depending on how many cores are on the system.

Software Engineer. Bitsum LLC.

alanedney

I've adjusted those contraints but unfortunately it looks like this software isn't going to solve my problem. Yes, it contrained the process but didn't kill it which meant to continued to eat all the memory on the machine but it took 20 seconds to do it rather than 5 seconds.
You don't have a similar bit of software that constrains the amount of memory a process consumes do you?

Jeremy Collake

Yes, all Process Lasso will do is change how the CPU time slices are doled out. For a program eating all your virtual memory, there is not much that can be done besides terminate it. I've considered adding an auto-termination/restart under certain conditions, like excessive virtual memory usage, but haven't got to it yet.

That compiler you have is really gone nuts if it is using all your virtual memory like that. There's no magic solution to something that out of control. Maybe you could isolate it into a virtual machine though, there-by limiting the resources it can eat up.
Software Engineer. Bitsum LLC.