On Mar 23, 2004 at 23:04, zeusng <zeus.ng(a)isquare.com.au> wrote:
[...]
As for your explanation of EAGAIN on linux, I do recall a different version
on some of the other discussion group. It talks about short of resource.
Also the man page shows a different story.
I've just looked again over the kernel sources and I can't see any other
possibility.
EAGAIN The socket is marked non-blocking and the receive
operation would block, or a receive timeout had
been set and the timeout expired before data was
received.
I'm not saying you are wrong, but that's not what I perceived.
The manual page has the POSIX interpretation on EAGAIN. In linux however
there is this exception: socket in blocking mode, wait for receive and
udp with bad checksum.
Check net/ipv4/udp.c in your kernel sources. The function name is
udp_recvmsg.
The tuning parameter I did was based on a previous experience on another
application, namely SAP. It had a similar problem until I made the changes.
I must admit that I also change /proc/sys/fs/file-max and some other
variables as well.
One more interesting thing I observed during the stress test. If I have a
lot of REGISTERs (say thousand) expire at around the same time, SER would
not process any new requests until all expired REGISTERs were gone. Any
explanation on this?
Andrei