[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cobalt-developers] Linux limitations on Qube 3



We are working on a server application designed for the Sun Cobalt Qube 3
series appliance servers. One of the design goals was to support up to 150
users on a Qube 3 Professional. With this goal in mind we have found out
that we reach some of the critical limitations as specified for the Linux
2.2.x kernel. I would like to know whether these limitations also apply to
the kernel used in the Sun Software for the Cobalt Qube 3 version 6.4 or
not.

The limitations can be divided into file size limits, file descriptor limits
and process/thread limits:

1) File size limits:
According to the 2.2.x specs the file size is limitted to 2 GB. Is this
correct and does it apply for the Cobalt Qube 3 as well? I've heard that
newer Linux systems, like Suse don't have this limit. If this is true, is it
possible to use a newer/other kernel? What are others doing with
applications that need to store large amounts of binary data (e.g.
pictures)?

2) File descriptor limits:
Since the application is executed under one single user, the number of open
files can be extremely large and the current default values for the number
of open file descriptors per user and/or the system limitation given for
open file descriptors could get exhausted. Looking at file-max, inode-max
and ulimit we got the following results:
/proc/sys/fs/file-max: 4096
/proc/sys/fs/inode-max: 4096
ulimit: unlimited
Q1: how much is unlimited for ulimit?
Q2: Can file-max be increased to 8192 and inode-max to 24576?
Are there any risks in doing so, because the kernel will use too much memory
or will get unstable otherwise?

3) Processes and Threads:
According to the Linux 2.2.x specs the standard limitation is 1024 processes
per user. Currently our application itself consists of a minimum of 34
processes + some additional tasks (processes) running periodically. Again,
all these processes are running under one single user. Since one ore more
threads will be created for each client using one of the processes, with 150
clients, the number of 1024 processes/threads can easily get reached
(simulating a havy load with 150 clients we measured a peak of 1544
processes/threads - however, we are not yet sure the Qube 3 will be able to
handle this load anyway).

I have heard somewhere that Red Hat Linux has higher limits (2000 or 3000).
Does this also apply for the kernel used in the Sun Software for the Cobalt
Qube 3 version 6.4? If yes, what is the actual limit?

Concerning 1): this will be a slight limitation to our application. With
slightly reduced comfort for the user we have workarounds to handle this.
Concerning 2) and 3): the only limitation that applies to our application is
that we will not be able to support up to 150 users on a Professional (about
100 users will be possible).

Thanks in advance for any answer to this!

Peter Gloor