[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Why Debian3.1 is slower so much than FreeBSD6.1 in our test?



Hi,

I benchmarked MySQL 4.1.18 on FreeBSD 6.1 and Debian 3.1 using Super
Smack 1.3 some days ago.

The benchmark table  is
CREATE TABLE `Account` (
`aid` int(11) NOT NULL auto_increment,
`name` char(20) NOT NULL default '',
`flag` int(11) NOT NULL default '0',
`uidcount` int(11) NOT NULL default '0',
`balance` int(11) NOT NULL default '0',
`point` int(11) NOT NULL default '0',
`blocktm` int(11) NOT NULL default '0',
`ipnum` int(10) unsigned default NULL,
`newdate` datetime default NULL,
PRIMARY KEY  (`aid`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

And it has 1,000,000 rows.

The SQL statement is
update Account set balance= balance + 1 where aid=?;

The result is followed:
OS                                  Clients        Result(queries per
second)  TPS(got from iostat)
FreeBSD6.1(disk write cache enable)    50               516.1
              about 2000
Debian3.1(disk write cache enable)     50               49.8
              about 200

FreeBSD6.1(disk write cache disable)    5               50
              about 200
Debian3.1(disk write cache disable)     50              28
              about 110

The result is surprise me. The MySQL Performance on FreeBSD6.1 is
about 10 times of on Debian3.1 when the disk write cache is enabled.

I know that MySQL uses fsync() to flush both the data and log files at
default when using innodb
engine(http://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html).
Our evaluating computer only has a 10000RPM SCSI hard disk. I think it
can do about 200 sequential fsync() calls per second if the fsync() is
real.

Why the TPS is so low when the disk write cache is enabled? And why
the TPS is only 110 when when the disk write cache is disabled(I think
it can be about 166 because the disk is 10000RPM)?

Any comment is welcome!

PS:
1. Our evaluating computer is DELL PowerEdge 1650。Its hardware
configuration is followed:
      CPU: 2 * Intel Pentium III 1.33GHz 512KB Level 2 Cache(smp)
      Memory: 1024MB ECC SDRAM
      HD: SEAGATE ST336706LC(36GB Ultra160 SCSI 10000RPM)
      NIC     : Intel(R) PRO/1000 Network Connection

2. Some important parameters in MySQL configuration file are here:
      log-bin
      sync_binlog=1
      innodb_safe_binlog
      innodb_buffer_pool_size = 384M
      innodb_additional_mem_pool_size = 20M
      innodb_log_file_size = 100M
      innodb_log_buffer_size = 8M
      innodb_flush_log_at_trx_commit = 1
      innodb_lock_wait_timeout = 50

3. on FreeBSD6.1 the /etc/fstab is followed:
      # Device                Mountpoint      FStype  Options
Dump    Pass#
      /dev/da0s1g             /home           ufs     rw              2       2
 and the outputs of tunefs is:
 mysql-test-4# tunefs -p /home
 tunefs: ACLs: (-a)                                         disabled
 tunefs: MAC multilabel: (-l)                               disabled
 tunefs: soft updates: (-n)                                 enabled
 tunefs: maximum blocks per file in a cylinder group: (-e)  2048
 tunefs: average file size: (-f)                            16384
 tunefs: average number of files in a directory: (-s)       64
 tunefs: minimum percentage of free space: (-m)             8%
 tunefs: optimization preference: (-o)                      time
 tunefs: volume label: (-L)

4. on Debian3.1 the /etc/fstab is followed:
 # <file system> <mount point>   <type>  <options>       <dump>  <pass>
 /dev/sda9       /home           ext3    defaults        0       2


regards,
Leo Huang

Reply to: