Subject: Re: NetBSD 2 vs the rest with MySQL
To: Chuck Silvers <chuq@chuq.com>
From: SODA Noriyuki <soda@sra.co.jp>
List: netbsd-advocacy
Date: 02/16/2005 04:18:41
>>>>> On Tue, 15 Feb 2005 09:34:56 -0800, Chuck Silvers <chuq@chuq.com> said:

> but it occurs to me that there's an easier way to
> achieve most of the same effect:  use UVM loaning instead of uiomove()
> to transfer the data in write().
	:
> but I bet
> that many applications that do multi-page write()s will happen to be using
> page-aligned memory addresses as well.  I verified that this is the case
> for mysql, at least in the default configuration.
> 
> the past few days I've been finishing my code for loaning-for-read()
> that I've been infrequently fiddling with for probably a couple years now,
> I'll post about it on tech-kern shortly.  loaning for write() shouldn't
> be much harder than for read().

Mmmm, great.

> (of course, what databases that do their own caching really want is
> unbuffered I/O, but mysql appears to rely on the OS file cache since
> the mysqld process is only 60MB on this machine with 3GB of RAM.
> maybe that's just how it's configured by default,

The MySQL configuration that the author of the report used is
described in previous article:
http://software.newsforge.com/software/04/12/27/1238216.shtml?tid=72&tid=29

i.e.
innodb_buffer_pool_size=256M
innodb_log_file_size=128M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1

Since the machine only has 512MB RAM, more than half of the memory
(256MB+8MB) are allocated to the database cache.

> unbuffered I/O would also be a fair bit of work to
> implement, but I'd like to see that in netbsd eventually.)

Yeah, direct I/O must be better for database applications.
--
soda