[OT] select and sysread problem on solaris
Mark Overmeer
mark at overmeer.net
Thu Sep 11 11:23:39 BST 2008
* Paul Johnson (paul at pjcj.net) [080911 09:20]:
> On Thu, Sep 11, 2008 at 02:36:55AM +0100, Andy Armstrong wrote:
> > printf( "%d\n", FD_SETSIZE );
>
> The output is 1024, but I'm not convinced the problem lies in this area.
See http://blogs.sun.com/elving/entry/too_many_open_files
Do you have perl compiled as 32bit or 64bit? It wouldn't wonder
me if Solaris lied to Perl about the max number of file-descriptors.
> We have just moved from under 128 files per select to just over, but I
> don't think this is the problem. Additionally, the system will seem to
> work fine for many Gb of data before this problem is (seemingly
> randonly) triggered.
Clients address your service via sockets which count as file-descriptors
as well. It is not only a limit on what you can pass with select():
the whole sum of pipes and sockets over all threads within one process
can not exceed 256. (At least, that is my interpretation of the docs)
--
Regards,
MarkOv
------------------------------------------------------------------------
Mark Overmeer MSc MARKOV Solutions
Mark at Overmeer.net solutions at overmeer.net
http://Mark.Overmeer.net http://solutions.overmeer.net
More information about the london.pm
mailing list