[comp.sys.hp] Question about max. # of processes on HP 9000.

robert@sri-spam.istc.sri.com (Robert Allen) (04/07/88)

    I've been doing some software IPC experimentation on an HP 9000 which
    requires that I be able to start up about 1 Server process and about
    30 Client processes.  Currently I seem to only be able to start up about
    22 Client processes before getting an error message from the system
    saying "no more processes".  Has anyone encountered this problem, and
    if so did you find some way of raising the limit?  I've been running as
    a simple user; I assume that root can make as many processes as it wants?

    By the way, it takes 15 seconds on our HP 9000 for the error message to
    come back saying "no more processes".  Anyone have any idea why it takes
    so long?  It seems to be doing something complex, since INTR'ing the client
    spawning process causes the bufferred error message to show up before the
    15 seconds is up.

    Any help, particularly with the first problem, will be much appreciated.

    Thanks,

    Robert Allen, robert@spam.istc.sri.com
    415-859-2143 (work phone, days)
-- 
----------------------------------------------------------------
Robert Allen, robert@spam.istc.sri.com		"Pay back time!"
415-859-2143 (work phone, days)
----------------------------------------------------------------

ckw@hpcupt1.HP.COM (Chick Webb) (04/08/88)

   > I've been doing some software IPC experimentation on an HP 9000 which
   > requires that I be able to start up about 1 Server process and about
   > 30 Client processes.  Currently I seem to only be able to start up about
   > 22 Client processes before getting an error message from the system
   > saying "no more processes".  Has anyone encountered this problem, and
   > if so did you find some way of raising the limit?  I've been running as
   > a simple user; I assume that root can make as many processes as it wants?

You don't mention what kind of 9000 you're running, so I'll try to address
all three boxes.

S500
----
On this machine there is a parameter, max_proc_per_user, which defines
the maximum number of processes any single user can have running.  It
can be changed using the uconfig(1m) command.

S800
----
There's a kernel parameter, nproc, that specifies the number of
processes (regardless of owner) that may concurrently exist.  The
defuault is set to 20+(8*MAXUSERS), and is specified in the kernel
configuration file (usually /etc/conf/gen/S800).  Changing this
parameter involves modifying the configuration file, and regenerating
the kernel.  (Alternatively, you can use adb, but this is more
difficult.)

S300
----
The S300 also defines nproc as the number of processes that may
concurrently exist.  It is defined in /etc/conf/dfile (usually).  In
this case as well, the kernel needs to be re-built with the modified
value.

>Robert Allen, robert@spam.istc.sri.com		"Pay back time!"
>415-859-2143 (work phone, days)

------
Hope this helps!

Chick Webb                          "I am sitting in the smallest room of
Hewlett-Packard Company              the house.  I have your letter in front
Cupertino, CA                        of me.  It will soon be behind me."
UUCP: {ucbvax, etc.}!hpda!ckw
ARPA: ckw@hpda.HP.COM                - A letter of relpy, by Voltaire

pdg@hpcupt1.HP.COM (Paul Gootherts) (04/08/88)

>  > I've been doing some software IPC experimentation on an HP 9000 which
>  > requires that I be able to start up about 1 Server process and about
>  > 30 Client processes.  Currently I seem to only be able to start up about
>  > 22 Client processes before getting an error message from the system
>  > saying "no more processes".  Has anyone encountered this problem, and
>  > if so did you find some way of raising the limit?  I've been running as
>  > a simple user; I assume that root can make as many processes as it wants?

>  S800
>  ----
>  There's a kernel parameter, nproc, that specifies the number of
>  processes (regardless of owner) that may concurrently exist.  The
>  defuault is set to 20+(8*MAXUSERS), and is specified in the kernel
>  configuration file (usually /etc/conf/gen/S800).  Changing this
>  parameter involves modifying the configuration file, and regenerating
>  the kernel.  (Alternatively, you can use adb, but this is more
>  difficult.)

If you have an s300 or s800 I believe there are two ways to get a message
like this:

(1) Your process table is full.  I don't think this is your problem
    (see (2) below).  Increasing the kernel parameter nproc is one way
    to fix this.

    !!! WARNING !!!  DO NOT use adb to do this!  The process table is
    allocated at boot-time, and it's size cannot be increased after that.
    Using adb to increase nproc in a running kernel will almost certainly
    cause a system panic, and increasing it in the /hp-ux file is
    unsupported.

    If you want to increase nproc you should use the supported tools
    (for example, uxgen on s800's).

(2) Your per-user limit has been reached.  I think this is what you are
    seeing since you started having trouble around 22 and the default
    limit is 26.  (This limit applies to all users *except* the superuser.)

    If this is your problem, you are in luck.  There is a kernel parameter
    called maxuprc which controls the limit.  It is normally set to 25,
    which allows each user a max of *26* processes.  This parameter can
    also be changed using the supported tools (again, uxgen on s800's...).

- Paul Gootherts   pdg@hpda	Hewlett-Packard Co.

shankar@hpclscu.HP.COM (Shankar Unni) (04/08/88)

1. If you have the "/etc/conf" directory (and the contents therein), simply
   go in there (as root) and edit the file "dfile". There are several copies
   lying around there, for various sample configurations. If you are not sure
   which one to pick up, use "dfile.full.lan".

   Look for the line saying "maxuprc". If it is present, bump up the number
   against it according to taste. if not, add it at the bottom, and use some
   reasonably large number, say, 64.

*
maxuprc     64

2. Execute "make -f config.mk". This will produce a kernel in "hp-ux".

3. Save the old kernel in /SYSBCKUP, and copy the new kernel into /hp-ux.

4. Reboot.

HINT: save the dfile that you modified as "dfile.<yourhostname>". It is
   a handy reminder as to which file to modify the *next* time you need to
   reconfigure your kernel.


If you don't have the contents of the /etc/conf directory, or something
goes wrong in steps 1 - 2, stop and call the nearest HP office for advice.


P.S. I'm assuming that you have a Series 3x0 machine.

--scu

stroyan@hpfcdc.HP.COM (Mike Stroyan) (04/08/88)

The total number of processes allowed and the number of processes
allowed per user are configurable kernel parameters.  Consult your
"System Administrator Manual", in the "Kernel Customization" chapter
and "Operating System Parameters" appendix.  The parameters in question
are "nproc" and "maxuprc" for the series 300 6.0 release.

The details may vary for different series and different releases.

Mike Stroyan, [hplabs!]hpfcla!stroyan

rjn@hpfcmp.HP.COM (Bob Niland) (04/10/88)

re: "If you have the "/etc/conf" directory (and the contents therein), simply
     go in there (as root) and edit the file "dfile"."

I just did this on two 300 6.0 systems, and maxuprc was in /etc/master.