Some metrics from HP Clout instance:
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 1 CPU socket(s): 2 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 2 Stepping: 3 CPU MHz: 2666.760 BogoMIPS: 5333.52 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 4096K NUMA node0 CPU(s): 0,1
Database was prepped with sysbench parallel-prepare, 16 tables and 5000000 rows for about ~20GB.
Backup was performed with --compress --encrypt=AES256
Serial, no parallel decrypt/decompress: $time innobackupex --decrypt=AES256 --encrypt-key=12345678123456781234567812345678 --decompress ./backup
real 10m50.492s user 9m51.688s sys 0m53.628s
Parallel with 2 forks decrypt/decompress: $time innobackupex --decrypt=AES256 --encrypt-key=12345678123456781234567812345678 --decompress --parallel=2 ./backup
real 5m38.778s user 9m50.381s sys 0m56.072s
Parallel with 4 forks decrypt/decompress: $time innobackupex --decrypt=AES256 --encrypt-key=12345678123456781234567812345678 --decompress --parallel=4 ./backup
real 5m38.861s user 9m50.900s sys 0m56.473s
So we see a linear improvement here with CPU availability as long as i/o can keep up
« Back to merge proposal
Some metrics from HP Clout instance:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 1
CPU socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 2
Stepping: 3
CPU MHz: 2666.760
BogoMIPS: 5333.52
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
NUMA node0 CPU(s): 0,1
Database was prepped with sysbench parallel-prepare, 16 tables and 5000000 rows for about ~20GB.
Backup was performed with --compress --encrypt=AES256
Serial, no parallel decrypt/decompress: key=12345678123 456781234567812 345678 --decompress ./backup
$time innobackupex --decrypt=AES256 --encrypt-
real 10m50.492s
user 9m51.688s
sys 0m53.628s
Parallel with 2 forks decrypt/decompress: key=12345678123 456781234567812 345678 --decompress --parallel=2 ./backup
$time innobackupex --decrypt=AES256 --encrypt-
real 5m38.778s
user 9m50.381s
sys 0m56.072s
Parallel with 4 forks decrypt/decompress: key=12345678123 456781234567812 345678 --decompress --parallel=4 ./backup
$time innobackupex --decrypt=AES256 --encrypt-
real 5m38.861s
user 9m50.900s
sys 0m56.473s
So we see a linear improvement here with CPU availability as long as i/o can keep up