I managed to have my wallet synced around the time you asked the question, running on a dedicated home server. Then I forgot to run geth for some hours after a power failure, and I was ~3000 blocks behind. Over the next 2 weeks, the "blocks left" in the UI has been varying, as low as 1200 up to about 4000.
Then a few days ago I upgraded to 1.8.0 and the following day to 1.8.1 of geth, and it has since slowed down significantly and I am now 7800 blocks behind.
My conclusion is; Either geth is a piece of junk and should not be used (I have not seen anything significantly better), OR (perhaps more likely) Ethereum has such major design flaw that it is doomed to succeed. If a high-ish end, Ethereum-dedicated home server can not catch up, then there is no future in Ethereum or any block-chain with similar traits.
The fact that the server spends 45% waiting on I/O, and that 10s of TB has been written to the file system, tells me that
a. it is most likely that the developers don't know what they are doing,
b. that even SSDs are not really a solution, as the writes will wear them down too quickly.
I have spent far too much money and far too much effort trying to get this to work. "Proof-of-Work" has suddenly a different meaning!
I have also no clue why there is so little responses on this, why this is not the most important topic to discuss in Ethereum and that every single person involved spend all there effort trying to solve it, UNLESS it is deemed unsolvable and it is now a matter of them making a smooth exit. Who knows?
In any event, I am not a happy camper and I am certain that there are many people like me.
I am using Windows 10, Mist Wallet 0.7.2 which includes geth v1.3.6, a non-SSD hard drive and ethernet connection to 16Mbs modem.
I had incredibly slow syncing of the blockchain, even with 25 peers and was actually having to to quit and restart Mist just to download another few blocks. I had installed the Mist Wallet for Win64 from here, which also includes a CLI called geth. (nb. apparently x32 editions don't contain geth?)
I followed numerous different recommendations, however none worked until I deleted the blockchain data using geth and kicked the whole process off again.
Rather than using the Mist sync process, I removed the chaindata and then ran
Opened the cmd prompt
Navigated to the directory containing geth.exe and opened it
Copied the file path from the bar Explorer
cd path/to/geth(replace path/to/geth with what you copied) and hit enter.
geth removedband hit enter.
Once the blockchain was removed, I ran
This above is also described here.
The download has now got to block 500,000 in 30 minutes which had previously taken 3 days!
If you are on a Mac, you would do this...
Right click on the ethereum-wallet.app and select 'show package contents'
Open 'contents', then 'frameworks', then 'node', then 'geth' and voila.
Then you should right click on
gethand select 'show info'.
Copy the location marked 'Where:'.
Open Terminal and type 'cd `
Other recommended changes to Windows I had performed were:
Manually setting the Windows page size as per: http://www.tomshardware.co.uk/forum/id-2813275/disk-usage-100.html
Specifically opened the Ethereum ports for TCP 30303 and UDP 30301 on my router as described here: Which TCP and UDP ports are required to run an Ethereum client?
Whether any of these contributed to it being much faster after the
geth removedbI'm not sure, but each of those may well help you.
The complete download of 1,500,000 blocks finished after about 10 hours, so the blocks definitely appear to take longer to download the greater the block number, due to the increased number of transactions contained in each block.