We have a multithreaded server process which runs during Day time.
Process is quite heavy in size of (20MB) and listen on some assigned
port.
We are running some 90 instances of this process on server which is
Solaris server and has 16 CPU's , 8GB of RAM and 20 GB of swap space.
We are not using single excutable for all these instances of server
Rather there is seprate copy of execuable file which is running.
This is because we have observerd that running multiple instances of
same executable results in memory hog.
Could anybody tell me reason?
I tried searching on google and only found that all these servers will
be sharing single Text section.
Process is doing lot of socket communication hence I/O load is heavy
but C.P.U usage is not high. It spikes to 60% max during peak period.
Thanks in advance.
> We have a multithreaded server process which runs during Day time.
> Process is quite heavy in size of (20MB) and listen on some assigned
> port.
20MB is very little nowadays. Is 20MB the size of the executable,
or the size of the running process?
> We are running some 90 instances of this process on server which is
> Solaris server and has 16 CPU's , 8GB of RAM and 20 GB of swap space.
90 * 20MB = 1.75GB. You should fit quite comfortably in RAM.
> We are not using single excutable for all these instances of server
> Rather there is seprate copy of execuable file which is running.
That decision was likely not very smart.
> This is because we have observerd that running multiple instances of
> same executable results in memory hog.
>
> Could anybody tell me reason?
You have likely mis-interpreted observed results.
Since you didn't explain what you observed, only your
likely-incorrect conclusion, how could we possibly help you?
> I tried searching on google and only found that all these servers will
> be sharing single Text section.
Only if they are running a single executable. They would then also
be sharing all read-only data, and any unmodified writable data.
But since you created multiple copies of the executable, there
should be no sharing whatsoever, and you should be using
89 * <size of text and read-only sections> more memory than you
need to.
> Process is doing lot of socket communication hence I/O load is heavy
> but C.P.U usage is not high. It spikes to 60% max during peak period.
If your processes are I/O bound, and are not memory constrained,
why are you worrying about memory consumption at all?
Cheers,
--
In order to understand recursion you must first understand recursion.
Remove /-nsp/ for email.