Al Hopper wrote:
I've just migrated a bunch of applications from Solaris 8, running on individual machines, to Solaris 10 running in multiple zones on AMD 64 (x4200) hardware. The current targets are running:SunOS xxxxx 5.10 Generic_118855-15 i86pc i386 i86pc In the Solaris 8 environment we had the following defined in /etc/system: set rlim_fd_max=65536 set rlim_fd_cur=16384 IOW, the production Java processes use a lot of file descriptors. On the new AMD64 machines, ulimit -a shows: time(seconds) unlimited file(blocks) unlimited data(kbytes) unlimited stack(kbytes) 10240 coredump(blocks) unlimited nofiles(descriptors) 1000 vmemory(kbytes) unlimited and the following program: #include <stdio.h> #include <sys/resource.h> main() { struct rlimit rlimit; if (getrlimit(RLIMIT_NOFILE, &rlimit) == -1) { perror("getrlimit fails"); exit(1); } printf("File soft limit: %d\n", rlimit.rlim_cur); printf("File hard limit: %d\n", rlimit.rlim_max); } when run, will indicate: File soft limit: 1000 File hard limit: 1000 Where is this "1000" number defined? How can I set the default max open file descriptors to something like 12k? I can't make sense of the results I get on a box with: SunOS xxx 5.10 Generic_118855-19 i86pc i386 i86pc after trying various values in /etc/system, both for the global zone, and in other non-global zones for: rlim_fd_max rlim_fd_cur Obviously I'm missing something obvious - but, believe me, I've put considerable time in using google.com and docs.sun.com. Perhaps I don't know the "secret handshake"?
This should be controlled by rctls. See prctl(1) and resource_controls(5). I think you are looking for process.max-file-descriptor. The default is 256 so I am not sure how you got 1000 though. Jerry _______________________________________________ zones-discuss mailing list [email protected]
