12-31-2003
You are getting two different things mixed up. The max of a soft limit is the hard limit. On SunOS 5.8 I just observed that, for file descriptors, my hard limit was 1024 and my soft limit was 256. I raised my soft limit to 512. I am using ksh which has a builtin ulimit. Switch to ksh and try it:
ulimit -n
ulimit -Hn
ulimit -Sn 512
ulimit -n
At this point I can open 512 files in a single process. But I'll admit that I've never tried to write such a program.
The next thing is how many files can stdio manage. I must admit that I was skeptical about the information in the link you provided. But "man stdio" not only backs it up, but points out that things are a tad worse...
Quote:
Note that no more than 255 files may be opened using fopen(), and only file descriptors 0 through 255 can be used in a stream.
That means that cranking the fd's up to 512 may not help much. And you may not reach 255 fopened files because a few fd's were burned for other things.
HP's docs claim that you can fopen() as many files as you have fd's. But I have never verified that.
It's hard to answer your question about "easily" reaching 255. I have never come close to that. I continue to suspect that your "3pp" is leaking fd's. Since you seem to have support, I would follow up with the vendor.
lsof works fine for me on SunOS 5.8. "I've tried lsof but it does not seem to work." is not much to go on. The best I can do with that is say "you must be doing something wrong." If you were to post a few more details, maybe someone can help.
10 More Discussions You Might Find Interesting
1. Solaris
I'm getting an error "too many files open"
# ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 8192
coredump(blocks) unlimited
nofiles(descriptors) 256
memory(kbytes) unlimited
#
hard limit shows 1024
I would like to know how many files... (1 Reply)
Discussion started by: max_min
1 Replies
2. UNIX for Advanced & Expert Users
Hi ,
We are using a Tool which runs on Unix Server. Have a Event which have some join operation and tries to open files depending on the join operation. So get the error
config/variants/orcl6/partitions/ml6/data/ap_PCardMap.csv (Too many open files)
Can someone please... (3 Replies)
Discussion started by: shashank_recj
3 Replies
3. Solaris
Hi,
I am newbie to Solaris and system administration in general, and I have a couple of questions about files in my HOME directory.
When I perform ls -la, I get the following list of files:
drwxr-xr-x 7 XXXYYY staff 17 Aug 24 07:31 .
drwxr-xr-x 7 root root 7... (2 Replies)
Discussion started by: JVerstry
2 Replies
4. UNIX for Dummies Questions & Answers
Hi--
I'm trying to figure out how to use cat more wisely. I have the following command, which works, but I'd like to understand how to get it to work more clearly and efficiently.
cat 'my file.001' 'my file.002' 'my file.003' 'my file.004' 'my file.005' 'my file.006' 'my file.007' 'my... (6 Replies)
Discussion started by: rlinsurf
6 Replies
5. Solaris
Hey All,
I had some minor questions regarding Sun's open storage
I understand it uses standard industry hardware (is the warranty void if we were to mix and match drives?)
I know it uses OpenSolaris for the storage features (but can it use any os?)
Does it have to be OpenSource? I... (7 Replies)
Discussion started by: Keepcase
7 Replies
6. Homework & Coursework Questions
1.) I am to write scripts that will be phasetest folder in the home directory.
2.) The folder should have a set-up,phase and display files
I have written a small script which i used to check for the existing users and their password.
What I need help with:
I have a set of questions in a... (19 Replies)
Discussion started by: moraks007
19 Replies
7. Shell Programming and Scripting
I want to open a file and edit it using vi However, i dont want to open directories or binary files. how can i do this?
Right now it opens all files without caring
echo "please enter a file to edit in Vi"
read file
if
then (2 Replies)
Discussion started by: icelated
2 Replies
8. Shell Programming and Scripting
Hello,
I have two files A and B. File A had a million records with each record been 10-digit number. File B had 400,000 records with each record been 10-digit number. There are some common and different records. I need to print out records in A that are not in B.
Please assist. Thanks - jak (5 Replies)
Discussion started by: jakSun8
5 Replies
9. Shell Programming and Scripting
A quick breakdown of my situation: I have 2 servers running OS 10.7, one in the US, the other in China. A folder is being synchronized via EMC's "Syncplicity".
Here is my problem- When we open an Excel spreadsheet on one server, Syncplicity does not sync over the temporary file that Excel... (0 Replies)
Discussion started by: sudo
0 Replies
10. Red Hat
I would like to test open files usage in my system, if I want to create a process ( or script ) that can use a certain amount ( eg. 1000 ) of open files , is it possible to create such process ( or script ) ? (3 Replies)
Discussion started by: ust
3 Replies
ulimit(2) System Calls ulimit(2)
NAME
ulimit - get and set process limits
SYNOPSIS
#include <ulimit.h>
long ulimit(int cmd, /* newlimit */...);
DESCRIPTION
The ulimit() function provides for control over process limits. It is effective in limiting the growth of regular files. Pipes are limited
to PIPE_MAX bytes.
The cmd values, defined in <ulimit.h>, include:
UL_GETFSIZE Return the soft file size limit of the process. The limit is in units of 512-byte blocks and is inherited by child pro-
cesses. Files of any size can be read. The return value is the integer part of the soft file size limit divided by 512. If
the result cannot be represented as a long int, the result is unspecified.
UL_SETFSIZE Set the hard and soft file size limits for output operations of the process to the value of the second argument, taken as a
long int. Any process may decrease its own hard limit, but only a process with appropriate privileges may increase the
limit. The new file size limit is returned. The hard and soft file size limits are set to the specified value multiplied by
512. If the result would overflow an rlimit_t, the actual value set is unspecified.
UL_GMEMLIM Get the maximum possible break value (see brk(2)).
UL_GDESLIM Get the current value of the maximum number of open files per process configured in the system.
RETURN VALUES
Upon successful completion, ulimit() returns the value of the requested limit. Otherwise, -1 is returned, the limit is not changed, and
errno is set to indicate the error.
ERRORS
The ulimit() function will fail if:
EINVAL The cmd argument is not valid.
EPERM A process that has not asserted {PRIV_SYS_RESOURCE} in its effective set is trying to increase its file size limit.
USAGE
Since all return values are permissible in a successful situation, an application wishing to check for error situations should set errno to
0, then call ulimit(), and if it returns -1, check if errno is non-zero.
The getrlimit() and setrlimit() functions provide a more general interface for controlling process limits, and are preferred over ulimit().
See getrlimit(2).
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO
brk(2), getrlimit(2), write(2), attributes(5), privileges(5), standards(5)
SunOS 5.10 1 Feb 2003 ulimit(2)