I didn’t reproduce the stall with a simple test case. Test case as below:
percona-playback: Version: 0.7
MySQL: community 5.6.19
1) set long_query_time to 0 to write all queries to slow log
2) Use sysbench to prepare 64 tables, each with 5K records
# sysbench --test=/usr/share/doc/sysbench/tests/db/multi_table_rw.lua --oltp-table-size=5000 --mysql-table-engine=innodb --tables=64 --mysql-user=root --mysql-password=secret --mysql-socket=/var/lib/mysql/mysql.sock prepare
3) Run 100K queries with 125 threads
# sysbench --test=/usr/share/doc/sysbench/tests/db/multi_table_rw.lua --oltp-table-size=5000 --mysql-table-engine=innodb --tables=64 --mysql-user=root --mysql-password=secret --mysql-socket=/var/lib/mysql/mysql.sock --num-threads=125 --max-requests=100000 run
4) Cleared sysbench tables and ran percona-playback
# percona-playback --query-log-file /var/lib/mysql/slow.log.saved --thread-pool-threads-count=125 --dispatcher-plugin thread-pool --mysql-username=root --mysql-password=secret --mysql-schema=sbtest > playback.out 2>playback.err
No stall was observed, ~200K queries were executed.
I understand this is much simpler comparing to a production workload. How many databases and tables are involved in your case? How many concurrent threads(Threads_running do you normally have?
Can you try with less threads, like --thread-pool-threads-count=60 ?
I didn’t reproduce the stall with a simple test case. Test case as below:
percona-playback: Version: 0.7
MySQL: community 5.6.19
1) set long_query_time to 0 to write all queries to slow log
2) Use sysbench to prepare 64 tables, each with 5K records /usr/share/ doc/sysbench/ tests/db/ multi_table_ rw.lua --oltp- table-size= 5000 --mysql- table-engine= innodb --tables=64 --mysql-user=root --mysql- password= secret --mysql- socket= /var/lib/ mysql/mysql. sock prepare
# sysbench --test=
3) Run 100K queries with 125 threads /usr/share/ doc/sysbench/ tests/db/ multi_table_ rw.lua --oltp- table-size= 5000 --mysql- table-engine= innodb --tables=64 --mysql-user=root --mysql- password= secret --mysql- socket= /var/lib/ mysql/mysql. sock --num-threads=125 --max-requests= 100000 run
# sysbench --test=
4) Cleared sysbench tables and ran percona-playback mysql/slow. log.saved --thread- pool-threads- count=125 --dispatcher-plugin thread-pool --mysql- username= root --mysql- password= secret --mysql- schema= sbtest > playback.out 2>playback.err
# percona-playback --query-log-file /var/lib/
No stall was observed, ~200K queries were executed.
I understand this is much simpler comparing to a production workload. How many databases and tables are involved in your case? How many concurrent threads( Threads_ running do you normally have?
Can you try with less threads, like --thread- pool-threads- count=60 ?