Re: file system and raid performance

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

 



M. Edward (Ed) Borasky wrote:

Ah, but shouldn't a PostgreSQL (or any other database, for that matter)
have its own set of filesystems tuned to the application's I/O patterns?
Sure, there are some people who need to have all of their eggs in one
basket because they can't afford multiple baskets. For them, maybe the
OS defaults are the right choice. But if you're building a
database-specific server, you can optimize the I/O for that.

I used to run IBM's DB2 database management system. It can use a normal
Linux file system (e.g., ext2 or ext3), but it prefers to run a partition
(or more, preferably more than one) itself in raw mode. This eliminates
core-to-core copies of in put and output, organizing the disk space as it
prefers, allows multiple writer processes (typically one per disk drive),
and multiple reader processes (also, typically one per drive), and
potentially increasing the concurrency of reading, writing, and processing.

My dbms needs are extremely modest (only one database, usually only one
user, all on one machine), so I saw only a little benefit to using DB2, and
there were administrative problems. I use Red Hat Enterprise Linux, and the
latest version of that (RHEL 5) does not offer raw file systems anymore, but
provides the same thing by other means. Trouble is, I would have to buy the
latest version of DB2 to be compatible with my version of Linux. Instead, I
just converted everything to postgreSQL instead, it it works very well.

When I started with this in 1986, I first tried Microsoft Access, but could
not get it to accept the database description I was using. So I switched to
Linux (for many reasons -- that was just one of them) and tried postgreSQL.
At the time, it was useless. One version would not do views (it accepted the
construct, IIRC, but they did not work), and the other version would do
views, but would not do something else (I forget what), so I got Informix
that worked pretty well with Red Hat Linux 5.0. When I upgraded to RHL 5.2
or 6.0 (I forget which), Informix would not work (could not even install
it), I could get no support from them, so that is why I went to DB2. When I
got tired of trying to keep DB2 working with RHEL 5, I switched to
postgreSQL, and the dbms itself worked right out of the box. I had to diddle
my programs very slightly (I used embedded SQL), but there were superficial
changes here and there.

The advantage of using one of the OS's file systems (I use ext2 for the dbms
and ext3 for everything else) are that the dbms developers have to be ready
for only about one file system. That is a really big advantage, I imagine. I
also have atime turned off. The main database is on 4 small hard drive
(about 18 GBytes each) each of which has just one partition taking the
entire drive. They are all on a single SCSI controller that also has my
backup tape drive on it. The machine has two other hard drives (around 80
GBytes each) on another SCSI controller and nothing else on that controller.
One of the drives has a partition on it where mainly the WAL is placed, and
another with little stuff. Those two drives have other partitions for the
Linus stuff, /tmp, /var, and /home as the main partitions on them, but the
one with the WAL on it is just about unused (contains /usr/source and stuff
like that) when postgres is running. That is good enough for me. If I were
in a serious production environment, I would take everything except the dbms
off that machine and run it on another one.

I cannot make any speed comparisons between postgreSQL and DB2, because the
machine I ran DB2 on has two 550 MHz processors and 512 Megabytes RAM
running RHL 7.3, and the new machine for postgres has two 3.06 GBYte
hyperthreaded Xeon processors and 8 GBytes RAM running RHEL 5, so a
comparison would be kind of meaningless.

--
  .~.  Jean-David Beyer          Registered Linux User 85642.
  /V\  PGP-Key: 9A2FC99A         Registered Machine   241939.
 /( )\ Shrewsbury, New Jersey    http://counter.li.org
 ^^-^^ 06:50:01 up 4 days, 17:08, 4 users, load average: 4.18, 4.15, 4.07

--
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