I've been running geth for about 2.5 days so far, and I'm trying to work out why it's taking so long to sync.
It's downloaded ~40Gb of the blockchain (up to block #2379173 if I'm interpreting the output correctly) and is running at consistently <25% CPU, often less. The IO load varies a lot but is on the order of 5-10MB/s, if that was purely for downloading and writing the blockchain data, it would take about half a day, rough estimate. This implies that the IO load is not for writing the chain to the disk. The network load is tens of KB/s, and my connection can handle a lot more than that. This means there's some MB/s of IO (writing) which is neither network chatter nor a net disk write.
The bottleneck clearly isn't the CPU, and the these numbers don't support IO as the bottleneck either. So why is it taking so long?