Post
Topic
Board Pools
Re: [~2700 GH/sec] BTC Guild - 0% Fees, LP, SSL, API, Full Decimal Payouts and more
by
eleuthria
on 10/07/2011, 04:48:22 UTC
I'm still curious why running 7 VM's on very powerful hardware is better than running one main OS, with one bitcoind and one pushpool, each of which of course would get 7x the resources.  It's not like it's spreading out the risk, it's all on one piece of hardware with one network connection right?

Pushpool and bitcoind cannot fully utilize multi-core systems.  Parts of them are threaded, but certain aspects can only utilize one thread, and these are the primary sources of miner idles.  Additionally, the volume of connections that connect to the servers can cause issues with the linux TCP stack, although a lot of tweaking has been done to eliminate that bottleneck.

By splitting a single server into the following components:
  Load Balancer (pfSense)
  MySQL Server
  Pushpool Servers

We exploit the inability of the programs to FULLY utilize multiple cores by giving them each a smaller load on virtual cores.  This also reduces the total number of connections that each pushpool has to loop through when pushing out long polls, which is part of reason occasionally you'll see a 2-3 second miner idle when a long poll is being pushed out.  The overhead of XenServer is minimal.

This also means if a pushpool instance freezes (hasn't happened recently), the people connected to the server will simply be routed to a different instance of pushpool.  A few seconds of downtime instead of a few hours.