Hi, I tested and changed segsize=0.25GB which is max partitioned table file size and default setting is 1GB in configure option (./configure --with-segsize=0.25). Because I thought that small segsize is good for fsync phase and background disk write in OS in checkpoint. I got significant improvements in DBT-2 result!
* Performance result in DBT-2 (WH340) | NOTPM 90%tile Average Maximum -----------------------------+--------------------------------------- original_0.7 (baseline) | 3474.62 18.348328 5.739 36.977713 fsync + write | 3586.85 14.459486 4.960 27.266958 fsync + write + segsize=0.25 | 3661.17 8.28816 4.117 17.23191 Changing segsize with my checkpoint patches improved original over 50% at 90%tile and maximum response time. However, this tests ware not same condition... I also changed SESSION parameter 100 to 300 in DBT-2 driver. In general, I heard good SESSION parameter is 100. Andt I didn't understand optimized DBT-2 parameters a lot. So I will retry to test my patches and baseline with optimized parameters in DBT-2. Please wait for a while. Best regards, -- Mitsumasa KONDO NTT Open Source Software Center
diff --git a/configure b/configure index 7c662c3..6269cb9 100755 --- a/configure +++ b/configure @@ -2879,7 +2879,7 @@ $as_echo "$as_me: error: Invalid block size. Allowed values are 1,2,4,8,16,32." esac { $as_echo "$as_me:$LINENO: result: ${blocksize}kB" >&5 $as_echo "${blocksize}kB" >&6; } - +echo ${blocksize} cat >>confdefs.h <<_ACEOF #define BLCKSZ ${BLCKSZ} @@ -2917,14 +2917,15 @@ else segsize=1 fi - # this expression is set up to avoid unnecessary integer overflow # blocksize is already guaranteed to be a factor of 1024 -RELSEG_SIZE=`expr '(' 1024 / ${blocksize} ')' '*' ${segsize} '*' 1024` -test $? -eq 0 || exit 1 +#RELSEG_SIZE=`expr '(' 1024 / ${blocksize} ')' '*' ${segsize} '*' 1024` +RELSEG_SIZE=`echo 1024/$blocksize*$segsize*1024 | bc` +#test $? -eq} 0 || exit 1 { $as_echo "$as_me:$LINENO: result: ${segsize}GB" >&5 $as_echo "${segsize}GB" >&6; } - +echo ${segsize} +echo ${RELSEG_SIZE} cat >>confdefs.h <<_ACEOF #define RELSEG_SIZE ${RELSEG_SIZE}
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers