Thanks for this comment. It certainly stimulated some thought.
As you suggested, I tried altering the rate of the “5Hz multicast” from the source application. In summary, if you up the multicast rate the rate at which IO net consumes CPU is accelerated. If you drop the multicast rate, the rate at which IO net consumes CPU decreases. But unfortunately there is no critical value at which the problem dissappears.
To cl arify, I am measuring CPU usage via the hogs utility and if I plot cpu usage of io-net with time I get what is to a first approximation, a straight line. The slope of the line increases as I increase the multicast packet rate.
I wonder if the problem might be with io-net or more specifically with the use of AF_UNIX sockets through io-net.
Mysql (in its standard configuration) uses and AF_UNIX socket on localhost. I can’t find a way to make it use an AF_INET socket on localhost.
In the past we’ve thrashed QNX systems using AF_INET sockets without any problems. I don’t have a lot of experience with the AF_UNIX sockets under QNX, but maybe someone else out there has some thoughts on this. It seems strange that the usage of io-net should increase with time.
As an aside, I’ve noted that as io-net increases, sometime the procnto (pid = 1) process reports its percentage cpu usage (as measured by hogs) as being greater than 100% and it continues to rise. Its got as high as 1000% what ever that means. (Perhaps hogs may not be the best tool to measure cpu usage).
Futher, I’ve noted that If I close the socket, either implicitly (by slaying my process feeding mysql) or explicitly (by calling mysql_close()), io-net usage goes back to zero. But if I restart my process, cpu usage by io-net seems to increase faster second time through. This one is a bit anecdotal.
QNX is such a fantastic system that I’m loathe to criticise it. In over 15 years of using it starting with QNX2, I’ve encountered only a couple of issues. But this one has me stumped.
Any thoughts or comments are welcome at this stage.