Server is a 3.4GHz processor with 3.75Gb Ram running Windows Server 2003 Standard edition Service Pack 2. (32 bit) Atempting to run php processes using automation software which runs these non-interactively.
Php processes can be run fine and they behave as if run using an interactive session. Problems start to happen when the number of php runs (in parallel) are increased. Sometime the php.exe will not complete even though the script it runs has completed ok. The symptoms seem consistent with HEAP exhaustion but this is proving hard to proove and resolve.
Obvious solution would be to change registry settings to alter the amount of HEAP being used by non-interactive processes. This allows more to start but they require more HEAP and so do not run as expected.
In the Microsoft Knowledge databases and posts everywhere there is talk of a 48Mb system wide limit on HEAP. A good idea would obviously be to increase this value though finding is problematic at best. I believe this is the registry setting for SessionViewSpace but changing this to 96Mb seems to have little effect and the problem with the number of non-intervactive proceses running and not completing persists so not sure if this has actually changed anything.
Without moving to a newer version of Windows (64 bit, Vista) is there a way to increase the amount of HEAP available to the entire system from the 48Mb limit?
Hi,
It does sound like one of your php runs are generating some sort of notification at the end of the script. Could be an error, such as a crash or some sort of informational message. When an app that runs non-interactively generates a msgbox, it will just sit there waiting on user input, which it will never receive.
When you run multiple instances of the app interactively, do they generate any messages at all or just run to completition.
Another idea might be to attach a debugger to one of hung php's and try things like getting the last error, or looking at the stack to see if it has indeed crashed.
--Mike
Did think it was that to start with but no messages when changing things so they ran interactively.
Eventually found that by turning off php sockets dll that the issue went away so it looks like that is the issue. Not sure what exactly is happening and difficult to reproduce for troubleshooting php. Maybe there could be some sort of windows sockets issue going on?
In the meantime looks like Heap is in the clear as although there is a limit it is difficult to reach but not impossible.