multi thread slave_performance_on_opc
TRANSCRIPT
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
1
MySQL Multi Thread Slave Performance Evaluation on OPC (OC3)
MySQL Global Business Unit Shinya Sugiyama
Copyright © 2016 Oracle and/or its affiliates. All rights reserved.
Environment
2
Oracle Cloud MySQL Service
Master and Slave Instance: OC3 (1OCPU(2 vCPU), 7.5 GB Mem)
MySQL Version: MySQL5.7.16
Monitoring: MySQL Enterprise Monitor (Separate Instance)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved.
Benchmark
Changed parameter:
slave_parallel_workers
Thread 1, 2, 4, 8, 16,32
Other Parameter is OPC MySQL Service Default (Only Server ID was Changed)
3
+------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | slave_parallel_workers | 8 | +------------------------+-------+
/u01/bin/mysql/bin/mysqlslap --no-defaults --create-schema=SLAP --engine=InnoDB --auto-generate-sql --auto-generate-sql-add-autoincrement --number-int-cols=3 --number-char-cols=5 --concurrency=10 --auto-generate-sql-write-number=50000 --auto-generate-sql-execute-number=50000 --auto-generate-sql-load-type=mixed -h localhost -u oracle
+-----------------------------+-------+ | Variable_name | Value | +-----------------------------+-------+ | slave_preserve_commit_order | ON | +-----------------------------+-------+
+---------------------+---------------+ | Variable_name | Value | +---------------------+---------------+ | slave_parallel_type | LOGICAL_CLOCK | +---------------------+---------------+
Copyright © 2016 Oracle and/or its affiliates. All rights reserved.
Benchmark1
4
[oracle@study01-mysql-1 ~]$ ./mysqlslap.sh Benchmark Running for engine InnoDB Average number of seconds to run all queries: 185.845 seconds Minimum number of seconds to run all queries: 185.845 seconds Maximum number of seconds to run all queries: 185.845 seconds Number of clients running queries: 10 Average number of queries per client: 50000
Study02: slave_parallel_workers = 1 Study03: slave_parallel_workers = 16
CPU USAGE: Elapsed time is much longer in case of parallel_workers 1 . CPU usage of parallel_workers 16 is less than 1 even total thread number is larger than 1. QUERIES and DELAY parallel_workers 16 is much faster than parallel_workers 1, so Behind_master is resolved soon.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved.
Benchmark2
5
[oracle@study01-mysql-1 ~]$ ./mysqlslap.sh Benchmark Running for engine InnoDB Average number of seconds to run all queries: 190.973 seconds Minimum number of seconds to run all queries: 190.973 seconds Maximum number of seconds to run all queries: 190.973 seconds Number of clients running queries: 10 Average number of queries per client: 50000
Study02: slave_parallel_workers = 2 Study03: slave_parallel_workers = 16
CPU USAGE: Elapsed time is longer in case of parallel_workers 2 . CPU usage of parallel_workers 16 is less than 2 even total thread number is larger than 2. QUERIES and DELAY parallel_workers 16 is faster than parallel_workers 2, so Behind_master is resolved soon.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved.
Benchmark3
6
[oracle@study01-mysql-1 ~]$ ./mysqlslap.sh Benchmark Running for engine InnoDB Average number of seconds to run all queries: 186.468 seconds Minimum number of seconds to run all queries: 186.468 seconds Maximum number of seconds to run all queries: 186.468 seconds Number of clients running queries: 10 Average number of queries per client: 50000
Study02: slave_parallel_workers = 4 Study03: slave_parallel_workers = 16
CPU USAGE: Elapsed time is little longer in case of parallel_workers 4 . CPU usage of parallel_workers 16 is less than 4 even total thread number is larger than 4. QUERIES and DELAY parallel_workers 16 is still faster than parallel_workers 4, so Behind_master is resolved little faster than 4.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved.
Benchmark4
7
[oracle@study01-mysql-1 ~]$ ./mysqlslap.sh Benchmark Running for engine InnoDB Average number of seconds to run all queries: 188.104 seconds Minimum number of seconds to run all queries: 188.104 seconds Maximum number of seconds to run all queries: 188.104 seconds Number of clients running queries: 10 Average number of queries per client: 50000
Study02: slave_parallel_workers = 8 Study03: slave_parallel_workers = 16
CPU USAGE: Elapsed time is almost same beteen parallel_workers 8 and parallel_workers 16. QUERIES and DELAY There is not much difference between parallel_workers 8 and parallel_workers 16, so Behind_master is almost same.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved.
Trial (トライアル)
8
■ Oracle MySQL Cloud Service English https://cloud.oracle.com/mysql 日本語サイト https://cloud.oracle.com/ja_JP/mysql ■ MySQL Enterprise Monitor Trial http://edelivery.oracle.com/ https://www-jp.mysql.com/trials/