Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Mar 2012 18:56:29 -0400
From:      "Dieter BSD" <dieterbsd@engineer.com>
To:        freebsd-hackers@freebsd.org,freebsd-drivers@freebsd.org
Subject:   Reigning in disk cache buffer hogs
Message-ID:  <20120318225630.155070@gmx.com>

next in thread | raw e-mail | index | archive | help
amd64
4 GiB
nVidia nForce CK804 (aka nforce4-ultra), SiI3132, JMB363
sata disks
FreeBSD 8.2
FFS/SU

Problem: I/O to one disk can fill up the disk buffer cache,
starving other processes of disk I/O.  If the other processes
are logging real time data (from a closed source "black box"),
then data is lost.  Each process has its own private disk
to minimise latency due to seeking and such, but that isn't
sufficient to prevent the problem.

It is always the onboard nforce4-ultra controller that causes the
problem. The expansion card controllers never cause the problem.
The onboard nforce4-ultra controller is supported by ata(4).
The expansion card controllers are supported by ahci(4) and siis(4).
The onboard nforce4-ultra controller is much faster than the
expansion card controllers, except that ata doesn't support NCQ,
so the nforce has a serious bottleneck writing.

Is there something about NCQ other than the obvious performance
improvement that would explain why the NCQ controllers never have the
problem?

What sort of miracle would it take to get NCQ support for the
nforce4-ultra controller?  Linix has had NCQ support since 2006.

Is there some knob to control reserving a few buffers per disk
to prevent one disk from hogging all the buffer cache?




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120318225630.155070>