← Back to team overview

percona-discussion team mailing list archive

[Bug 326464] Re: performance regression in tpc-c 1 thread

 

It may come from the following part of the patch innodb_io_patches.patch.
It may allow too many IOs as "not so busy".

I think these part has became unnecessary, now.
Because we have another parameter to tuning by another way in current version.
(e.g. innodb_adaptive_checkpoint, innodb_ibuf_active_contract, innodb_ibuf_max_size, etc.)

Please retry to patch reverse of the following part.
(How about with innodb_ibuf_active_contract = 1 ?)

---------
diff -ru a/srv/srv0srv.c b/srv/srv0srv.c
--- a/srv/srv0srv.c     2009-01-06 14:22:04.000000000 +0900
+++ b/srv/srv0srv.c     2009-01-06 15:10:05.000000000 +0900

.....

@@ -2377,10 +2397,10 @@
                        + log_sys->n_pending_writes;
                n_ios = log_sys->n_log_ios + buf_pool->n_pages_read
                        + buf_pool->n_pages_written;
-               if (n_pend_ios < 3 && (n_ios - n_ios_old < 5)) {
+               if (n_pend_ios < 3 && (n_ios - n_ios_old < PCT_IO(5))) {
                        srv_main_thread_op_info = "doing insert buffer merge";

.....

@@ -2428,10 +2491,10 @@
        n_pend_ios = buf_get_n_pending_ios() + log_sys->n_pending_writes;
        n_ios = log_sys->n_log_ios + buf_pool->n_pages_read
                + buf_pool->n_pages_written;
-       if (n_pend_ios < 3 && (n_ios - n_ios_very_old < 200)) {
+       if (n_pend_ios < 3 && (n_ios - n_ios_very_old < PCT_IO(200))) {

....
---------

-- 
performance regression in tpc-c  1 thread
https://bugs.launchpad.net/bugs/326464
You received this bug notification because you are a member of Percona
developers, which is the registrant for Percona patches.

Status in Patches for MySQL by Percona: Confirmed
Status in Percona XtraDB Storage Engine for MySQL: Confirmed

Bug description:
I observe performance regression if run XtraDB (the same for percona patches in 5.0.75) with IO tuned parameters in 1 thread tpc-c benchmarks. With 4 threads = results are OK.

tuned parameters:

innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_io_capacity=800
innodb_adaptive_checkpoint=1


full my.cnf:

====
[mysqld]
#mysqld options in alphabetical order
user=root

default_table_type=MYISAM

innodb_buffer_pool_size=3G
innodb_data_file_path=ibdata1:10M:autoextend
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=8M
innodb_log_files_in_group=2
innodb_log_file_size=128M
innodb_thread_concurrency=0
innodb_flush_method = O_DIRECT

innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_io_capacity=800
innodb_adaptive_checkpoint=1

#innodb_extra_rsegments=16
#innodb_thread_concurrency=16

max_connections=3000
query_cache_size=0
skip-name-resolve

table_cache=2048

===

I use tpc-c 100W.

for 1 thread not tuned I have 3483.8 TpmC 
tuned - 3156.6

for 10 threads:
not tuned: 8039.1
tuned: 9111.9

So we have something wrong in 1-thread case.



References