Re: [HACKERS] Sequential scan speed, mmap, disk i/o]

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: [HACKERS] Sequential scan speed, mmap, disk i/o]
Дата
Msg-id 199805291728.NAA28567@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: [HACKERS] Sequential scan speed, mmap, disk i/o  (dg@illustra.com (David Gould))
Список pgsql-hackers
>
> > > Very interesting. Is it possible to get the schema, the query, and a
> > > a sample of the data or a generator program for the data? I am quite surprised
> > > to see us do so well, I would have guess that the per row overhead would
> > > have us down far below wc.
> >
> > Sure.
> >
> >     create table test (x1 int, x2 int, x3 char(10), x4 varchar(50));
> >     insert into test values (3, 8, 'asdf','asdf');
> >
> >     insert into test select * from test;  <- continue until test is large
> >
> >     select * from test where x1 = 23423; <- this is what I timed
> >
>
> So I finally got around to playing with this a little and I get on my
>
> P133 (HX mb) 32 Mb mem, Linux 2.0.32 (glibc) with Quantum Atlas 2.1G disk
> on NCR810 SCSI

OK, I have a Barracuda drive, which is probably the same speed as the
Atlas(Ultra SCSI), but have a PP200, which may be why my PostgreSQL
could keep up better with the disks.

My dd's showed ~6,000 KB/sec, postgresql was 4,800 KB/sec, and wc was
4,500 KB/sec.   Interesting how the speed fell off with the count().
That is executor overhead, I am sure.

>
> for test at 1048576 rows, file size is 80281600 bytes.
>
> - time cat pg/test/data/base/dg/test >/dev/null
>   0.02user 3.38system 0:14.34elapsed 23%CPU          = 5467 KB per second.
>
> - time wc pg/test/data/base/dg/test
>   9.12user 2.83system 0:15.38elapsed 77%CPU          = 5098 KB per second.
>
> - time psql -c "select * from test where x1 = 23423;"
>   0:30.59elapsed (cpu for psql not meaningful, but top said 95% for postgres)
>                                                      = 2563 KB per second.
>   Not bad!
>
> - time psql -c "select count(*) from test;"
>   0:50.46elapsed                                     = 1554 KB per second.
>   (trivial aggragate adds 20 seconds or 65%)
>
> - time psql -c "select count(*) from test where x1 = 3;"
>   1:03.22elapsed                                     = 1240 KB per second.
>   (trivial where clause adds another 13 seconds)
>
> - time psql -c "select count(*) from test where x4 = 'asdf';"
>   1:10.96elapsed                                     = 1105 KB per second.
>   (varchar compare vs int compare adds only 7.7 seconds).
>
>
> Btw, during all this, the disk hardly even made any noise (seeking).
> ext2 seems to lay things out pretty well. The data dir right now is on a
> /home, which is 86% full and it still managed to stream the 'cat' at about
> full disk bandwidth.


--
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Removal of exec() patch applied
Следующее
От: "Nicolas PROCHAZKA"
Дата:
Сообщение: Postgresql and Java