Been lurking in this thread for awhile now. Most of the issues I've encountered have already been reported by other users and patched, but I have two things I can't figure out:
1) I have a very disparate number of getworks to shares in the pool summary (251 to 26).
The getwork code performs failover after 3 seconds if a pool doesn't respond. This means that a little lag in, say, the DNS lookup can trigger a failover. This will not be a problem with the C# backend since it will keep a queue of a few pieces of work per pool, populated on a background thread. Getworks from a worker will pull off of the queue and trigger the background thread to refill it.
2) I noticed on one of my any of my clients running poclbm that every 60 seconds after starting I get an RPC error before it continues. I haven't seen this on phoenix or Ufasoft's miners...
That's odd. poclbm is all I use and I haven't noticed too many problems with it. I do note that it tends to abort a getwork request after about 5 seconds and try again immediately. This means that poclbm and the PHP failover code are often at odds, since by the time that the proxy fails over to the second pool, poclbm has aborted the request and is trying again.
I had noticed for the last two weeks I had an abnormally high number of apache2 processes running (150+) for about 20 active miners. I'd eventually have to restart after apache stopped responding. This seems to have cleared with the changes committed in the last 3 days. Again, also not sure if related.
Hmm, I'm not sure what I could have changed that would fix this. The frequency of requests might be causing Apache to try to keep more HTTP worker processes running to serve them. And if your miners recognize the X-Roll-NTime header (which I just added), that means they will usually only do a handful of getworks per round, and so the number of requests to Apache will drop dramatically.
Excellent project by the way. I just wish I hadn't been tainted by coding microsoft.net all these years so I could contribute some code.
I don't think you'd be prevented from contributing to the PHP side of the project.
And since I'm not building a compatible framework (like Mono is), I don't think I really need to exclude MS.NET developers from the C# side of the project either.