Hello again managers,
Thanks to (in alphabetical order):
Anders Hammarquist <iko@dd.chalmers.se>
Celeste Stokely <celeste@celestial.stokely.com>
Christopher L. Barnard <cbarnard@cs.uchicago.edu>
Colin Matthews <cybcpm@cyber.rdg.ac.uk>
Craig L. Gruneberg <clg@csph.psu.edu>
Dave Roberts <djr@saa-cons.co.uk>
Fedor Gnuchev <qwe@ht.eimb.rssi.ru>
Glenn Satchell - Uniq Professional Services <Glenn.Satchell@uniq.com.au>
Jurgen M. <sysjxm@devetir.qld.gov.au>
Kirk Anderson <kma@hrb.com>
Laurent Duperval <laurent@Grafnetix.COM>
Michael Salehi x22725 <mrs@cadem.mc.xerox.com>
Michael Sullivan <mike@trdlnk.com>
Nicholas R LeRoy <nleroy@norland.com>
raju@hoho.ecologic.net <raju@hoho.ecologic.net>
The problem was many processes complained about lack of "space". I
had done df -k to try and see if swap space was full, but I did that after
one or two processes had aborted due to lack of space and the result wasn't
accurate (thanks to Colin for pointing this).
The solution, as pointed by everyone, is to buy more RAM. I will do
that soon; meanwhile, I have reduced the number of processes that the Proxy
server spawns, freeing up more than 3 MB. I also added a swap file,
increasing available memory by another 32 MB; I did that following the
instructions provided by many of the managers that answered.
An interesting thin is that, according to Nicholas, SunOS/Solaris
requires backing storage for the RAM image. If I'm not wrong, that means
you always need more swap than the size of your RAM to get any benefits
from the virtual memory
Another interesting explanation about fork was provided by Kirk
Anderson:
--------------------------8<--------------------------
When I extended an application to fork out other tasks, I learned a
lesson which may apply here. Every user has a process table of about
32 entries.
When this fork failure is occuring, check for "defunct" processes (via
'ps -aux | more' for SunOS). If you have a significant number of these
processes, then it is likely that your processes are in limbo.
A defunct process has completed, but is waiting to report its completion
status to its parent. In our application, that meant performing a wait()
system call. There are also non-blocking varieties such as wait3().
--------------------------8<--------------------------
One more thing worth mentioning: Celeste's Web service
(http://www.stokely.com) has tons of useful links and information on Unix
in general, and a section devoted to Sun machines. Also provided the
shortest answer with the biggest message ;)
Saludos,
Alfredo Sola.
This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:11:15 CDT