On Mar 23, 2004 at 23:04, zeusng zeus.ng@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