Nick Kew wrote:
>>   (Note, incidentally, that the picture might be different for a Java
>> server, where the Java byte code for the application and a bunch of
>> overhead objects might well fall into that sharable bucket.)
> Would that apply to similar bytecode like Python, which is commonly
> run in-process in Apache?

Don't know, maybe.  It would depend on how much of the memory is common 
between the various servers.  Looking again at my comment, the effect 
I'm imagining would depend a great deal on whether they're all using the 
same application, and then on whether you know that (and initialize the 
application) before you fork the servers.  It would also depend on how 
memory happens to be laid out - if it happens that sharable (read-only 
after initialization) and unsharable (written after initialization) data 
get interleaved, you might end up with few pages shared.

If you initialize the application and *then* fork, I'd expect a great 
deal of sharability, for any development environment.  If, on the other 
hand, you fork and then initialize the application, probably none of it 
will be sharable.  (Environments that precompile the program and save it 
in a file might end up sharing that part, but not data or dynamically 
compiled code.)

It should be possible to determine this sharability today, if you're 
already forking new processes for each customer.  The zone_enter() won't 
affect that.  Unfortunately, I don't know how to ask the virtual memory 
subsystem how much COW memory is shared between two processes.

Sorry, that's a little rambling.  I'm still asleep :-)
zones-discuss mailing list

Reply via email to