* Kevin <dedke01 at hotmail.com> [2007-05-31 08:44]:
> In Solaris 10 we have the following two kernel parameters:
> rlim_fd_max - which has a default value of 65536
> rlim_fd_cur - which has a default value of 256
These are the default settings for the
process.max-file-descriptors resource control, so that it remains
compatible with the previous resource limit implementation.
> However to see what these values are, you run the following command:
>
> kstat -n file_cache
>
> and look at the buf_total or buf_max - but they don't match the 65536 number.
The file_cache is a kernel memory cache for kernel file objects;
kstat(1) is showing the kernel statistics reported by that cache. The
file_cache contains all the file descriptors allocated for processes
by the kernel, but none of its statistics will match the defaults for
the maximum file descriptor limit.
> On my system I have rlim_fd_cur set to 576 and the max at the default,
> which I confirmed with a 'sysdef' but when I run a kstat -n it comes
> back as 1740.
>
> Can anyone explain the difference?
If you wish to see the effect of changing the rlim_fd_* settings (via
/etc/system, say), use
# plimit 1
which will report init(1M)'s rlimit settings. (You can also use prctl
to see more details on the kernel's representation:
process.max-file-descriptor
basic 256 - deny 1
privileged 65.5K - deny -
system 2.15G max deny -
)
- Stephen
--
sch at sun.com http://blogs.sun.com/sch/