[squeak-dev] lowSpaceWatcher problems
arning315 at comcast.net
Tue Mar 12 11:03:59 UTC 2013
You can always construct something in Smalltalk to do more of what you want:
| memoryEnd params |
spy _ [
[pig isTerminated] whileFalse: [
params := Smalltalk getVMParameters.
memoryEnd := params at: 3.
memoryEnd > 400000000 ifTrue: [
Processor remove: pig ifAbsent: [self halt].
pig debugWithTitle: 'Interrupted from SpaceSpy'.
(Delay forMilliseconds: 60) wait.
'The pig was terminated ',Time now asString,' ' displayAt: 0 at 20.
spy priority: 45; resume.
In this case, as long as the suspect process is running, the spy checks
periodically for above-normal memory use, terminating the pig when reached.
On 3/11/13 9:51 PM, Chris Muller wrote:
> I have a server performing a heavy-lift operation crash with "out of
> memory". Investigation revealed the lowSpaceWatcher did not give any
> of its #memoryHogs a chance to #freeSomeSpace because it the VM
> actually ran out of memory just prior to that -- during the initial GC
> (called from #bytesLeft).
> I notice #lowSpaceThreshold is only 400K which seems like a very
> insignificant amount of memory by 2013 standards, so I upped it
> 10-fold to 4M:
> ^ 4000000
> My thought was that this would cause the VM to signal the
> LowSpaceSemaphore, when only 4M was remaining rather than when there
> was only 400K remaining. I'm allocating 700M to the server, so a
> LowSpace signal at 696M is absolutely fine!
> Unfortunately, the 4M threshold seems to create all sorts of strange
> slowness and... problems, I guess.
> I need lowSpaceWatcher to work, what is the proper way to fix this?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev