Closed davidhiendl closed 7 years ago
Yeah that's pretty slow, but sounds like a swarm issue to me, not an SST issue. Are you using --opt encrypted
? If on a local network I think you want to not use encryption as the overhead is quite significant.
I'd run a test between two nodes using something like "time socat ..." to establish a baseline. If that doesn't expose an issue then you could try disabling "progress" but then you won't get the Rate output so you'll have to measure it yourself somehow.
On my cluster running on Kontena with a "trusted-subnet" configured (disables encryption between nodes) I got speeds much better than you're getting on just a gigabit network. I enabled compression with pigz but still my network transfer rate was also much higher. (~50GB in a few minutes)
Using basic nc data transfer over encrypted overlay network I achieved 250mb/s transfer speed... Granted it's no where near that without encryption, but it's still several orders of magnitude faster then the sst replication stream...
Found the problem, CPU limit was limiting the transfer rate. Now its an acceptable ~50mb/s. Sorry about that. Closing.
When a node joins the cluster it is replicated REALLY slow. The nodes communicate over an encrypted docker swarm overlay network.
It was transferred with only 368kb/s on average on a 10 GbE dedicated NIC for docker swarm nodes. Nothing else was running on those nodes during tests. There was no workload what so ever running.
Obviously this is not as big of a problem with a fresh / nearly empty database but I have databases that exceed 50GB.