[Seaside] image unable to start correctly...space problem?

John M McIntosh johnmci at smalltalkconsulting.com
Sun Nov 18 10:38:47 UTC 2007


Ok, let me clarify a few things, no one mentions the operating system,  
although I guess it's Windows based on mention of squeak.exe

(a) most 32bit operating systems won't let you allocate a chunk of  
memory > 2 GB
(b) some 32bit operating systems won't let you allocate a chunk of  
memory > 1.5 GB
(c) Until just recently allocating > 2GB of memory for a Squeak image  
would cause the VM to fail.

(c) The Squeak VM (all platforms) come with a upper limit on how big  
the image can grow, what that limit is
is dependent on which VM and which version.  Some VMs will let you set  
the upper limit when you start the VM
  http://wiki.squeak.org/squeak/105

Someone will need to check but it looks like the windows VM is built  
with a max of 512MB for the image memory
sqWin32Alloc.h

/*
    Limit the default size for virtual memory to 512MB to avoid nasty
    spurious problems when large dynamic libraries are loaded later.
    Applications needing more virtual memory can increase the size by
    defining it appropriately - here we try to cater for the common
    case by using a "reasonable" size that will leave enough space for
    other libraries.
*/
#ifndef MAX_VIRTUAL_MEMORY
#define MAX_VIRTUAL_MEMORY 512*1024*1024
#endif


Solutions to very large squeak images are:

(a) Run a 64 squeak Vm with 32bit Image, that should allow a 4GB  
squeak image.
(b) Ensure you have all the 32bit VM patchs so you can actually access  
 > 2GB
(c) The GC logic and how it is tuned is not designed for multi-GB  
image. See
http://www.esug.org/data/ESUG2006/pres/gctalkjohnmacintosh.pdf
(d) Ensure the memory upper bound set is sufficient for your needs.

On Nov 18, 2007, at 2:15 AM, Philippe Marschall wrote:

> 2007/11/18, Ching de la Serna <ching.dls at gmail.com>:
>> Hi Philippe,
>>
>> I am using Squeak (I presume when you mentioned VW you meant Visual
>> Works?) I have 4GB of physical memory
>
> No I meant VM. You a single process on a 32bit OS will never have 4 GB
> of virtual memory. In general you are limited to 2 GB of virtual
> memory unless you play special tricks. This is completely independend
> of your physical memory size
>
> Cheers
> Philippe
>
>> Thanks,
>>
>> Ching
>>
>> On Nov 18, 2007 6:01 PM, Philippe Marschall
>> <philippe.marschall at gmail.com> wrote:
>>> 2007/11/18, Ching de la Serna <ching.dls at gmail.com>:
>>>
>>>> Hi Seaside,
>>>>
>>>> This problem has been bedeviling me for a long time now. I could  
>>>> not
>>>> properly start my image after I got a message, "Space is low".  
>>>> When I
>>>> checked, Squeak.exe process was reported to be 800,000 MB and I had
>>>> 2GB of memory. Several other processes were competing with the 2GB
>>>> memory.
>>>>
>>>> I proceeded to try to solve this by adding more memory. Now, I  
>>>> have 4
>>>> GB of physical memory and my app started fine. When I proceeded  
>>>> to add
>>>> more methods and tried to save, I lost my app in that it stopped  
>>>> and
>>>> would not start again. Can anyone tell me what is going on here? my
>>>> image is a little over 800 MB and my memory manager reports  
>>>> available
>>>> memory in excess of 2GB
>>>
>>> There is a difference between physical and virtual memory. Using
>>> Squeak images of this size is unknown territory. You'll have to  
>>> use a
>>> recent VW and are very likely to spend a considerable amount of time
>>> on garbage collection.
>>>
>>> Cheers
>>> Philippe
>>>
>>>> Thanks for the help,
>>>>
>>>> Ching
>>>

--
= 
= 
= 
========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
= 
= 
= 
========================================================================




More information about the seaside mailing list