Re: postgresql 8.3 tps rate

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

 



M. Edward (Ed) Borasky wrote:

> At the CMG meeting I asked the disk drive engineers, "well, if the
> drives are doing the scheduling, why does Linux go to all the trouble?"

One big reason is that Linux knows more about the relative importance of
I/O operations than the individual drives do. Linux's scheduler supports
priorities in its queuing, and is able to do things like try to perform
small blocking reads before long non-blocking writes in order to improve
overall system throughput.

The individual drives just don't have the knowledge to make these
decisions. All they can really do is try to fetch the set of blocks
currently requested in the smallest possible time. This can even be
harmful if, in order to improve overall throughput, the drive reorders
what to the OS is a very high priority operation and performs it later
than it would've if following the request queue directly.

I've had to modify the 3ware driver to set very shallow request queues
for similar reasons. It was using very deep queuing and the controller
seems to do very stupid request queuing where it maintains a single deep
per-controller queue rather than per-array queues, so I was getting
AWFUL request latencies on high priority small reads when bulk I/O was
in progress elsewhere - even on another array on the same controller.

I've also had to turn NCQ off on SATA disks before because it was
foiling Linux's I/O priority management, so tasks with low ionice levels
still ended up rather severely impacting system responsiveness.

Hopefully these devices will end up with the smarts to manage I/O in a
priority queue where read latency is considered as well as throughput.

> Their answer was something like, "smart disk drives are a relatively
> recent invention." But

--
Craig Ringer

-- 
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux