Is the fsync() fake on FreeBSD6.1?

Leo Huang leo.huang.gd at gmail.com
Fri Jun 30 03:57:07 UTC 2006


hi, Bruce

> How did you disable "driver" write caching?  I think both Bjorn and I
> meant the _drive_ write caching, and that is what you refer to as "disk"
> write caching.  Only turn off the caching in the lowest layer (disk ==
> drive).

Yes, "disk" what I say means drive.

On FreeBSD, I use camcontrol to disable the drive write caching.
Enable:
mysql-test-4# camcontrol modepage da0 -m8
IC:  0
ABPF:  0
CAP:  0
DISC:  1
SIZE:  0
WCE:  1
MF:  0
RCD:  0
Demand Retention Priority:  0
Write Retention Priority:  0
Disable Pre-fetch Transfer Length:  65535
Minimum Pre-fetch:  0
Maximum Pre-fetch:  0
Maximum Pre-fetch Ceiling:  65535

Disable:
mysql-test-4# camcontrol modepage da0 -m8
IC:  0
ABPF:  0
CAP:  0
DISC:  1
SIZE:  0
WCE:  0
MF:  0
RCD:  0
Demand Retention Priority:  0
Write Retention Priority:  0
Disable Pre-fetch Transfer Length:  65535
Minimum Pre-fetch:  0
Maximum Pre-fetch:  0
Maximum Pre-fetch Ceiling:  65535


On Debian, I use sginfo to disable it.
Enable:
mysql-test-1:/home/huangjy# sginfo -c /dev/sda
Caching mode page (0x8)
-----------------------
Initiator Control                  0
ABPF                               0
CAP                                0
DISC                               1
SIZE                               0
Write Cache Enabled                1
MF                                 0
Read Cache Disabled                0
Demand Read Retention Priority     0
Demand Write Retention Priority    0
Disable Pre-fetch Transfer Length  65535
Minimum Pre-fetch                  0
Maximum Pre-fetch                  0
Maximum Pre-fetch Ceiling          65535
FSW                                1
LBCSS                              0
DRA                                0
Number of Cache Segments           8
Cache Segment size                 0
Non-Cache Segment size             0

Disable:
mysql-test-1:/home/huangjy# sginfo -c /dev/sda
Caching mode page (0x8)
-----------------------
Initiator Control                  0
ABPF                               0
CAP                                0
DISC                               1
SIZE                               0
Write Cache Enabled                0
MF                                 0
Read Cache Disabled                0
Demand Read Retention Priority     0
Demand Write Retention Priority    0
Disable Pre-fetch Transfer Length  65535
Minimum Pre-fetch                  0
Maximum Pre-fetch                  0
Maximum Pre-fetch Ceiling          65535
FSW                                1
LBCSS                              0
DRA                                0
Number of Cache Segments           8
Cache Segment size                 0
Non-Cache Segment size             0

> I wonder when all drives will have enough fast enough nonvolatile RAM for
> write caching to just work.
Our test computer only have one scsi disk. So I think that the data in
drive write caching will be lost when the power is off.


Regards,
Leo Huang

2006/6/29, Bruce Evans <bde at zeta.org.au>:
> On Thu, 29 Jun 2006, Leo Huang wrote:
>
> >> >> OS           Clients        Result(queries per second)  TPS(got from
> >> >> iostat)
> >> >> FreeBSD6.1    50               516.1                         about 2000
> >>
> >> Seems normal for drives that do write caching.
> >
> > I disable the driver write caching as Bjorn Gronvall suggest, the
> > result show that the TPS come down to about 200. So I think you and
> > Bjorn Gronvall are right. It is the disk write caching make the TPS so
> > high.
> >
> >> >> Debian3.1     50               49.8                          about 200
> >>
> >> Seems to slow for disks that do write caching.  Maybe Debian does something
> >> to force the drive to complete it's i/o, or just does a full sync() like
> >> someone mentioned Linux doing.
> >
> > I use sginfo the find that the disk write caching is also enabled
> > default. After the disk write caching is disabled, the TPS also come
> > down from 200 to 110. This is really pullze me. Can you give me more
> > infomation about it?
>
> How did you disable "driver" write caching?  I think both Bjorn and I
> meant the _drive_ write caching, and that is what you refer to as "disk"
> write caching.  Only turn off the caching in the lowest layer (disk ==
> drive).
>
> I wonder when all drives will have enough fast enough nonvolatile RAM for
> write caching to just work.
>
> Bruce
>


More information about the freebsd-fs mailing list