[BSD] I/O sebesseg merese
Laszlo Nagy
gandalf at designaproduct.biz
2006. Sze. 11., H, 13:28:41 CEST
Sziasztok!
Van egy gepem amin egy viszonylag nagy adatbazis van PostgreSQL-ben.
Amikor kiadok egy "create index" parancsot, vagy epp vaacum-ozom az
adatbazist, akkor altalaban ilyen kep fogad:
CPU states: 11.3% user, 0.0% nice, 7.5% system, 0.8% interrupt, 80.4%
idle
Mem: 210M Active, 552M Inact, 190M Wired, 42M Cache, 111M Buf, 1696K Free
Swap: 5120M Total, 656K Used, 5119M Free
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU
COMMAND
45140 pgsql 1 -4 0 62892K 56068K getblk 1 0:16 3.71%
postgres
46145 pgsql 1 -8 0 44168K 38444K biord 1 0:01 0.15%
postgres
57862 gandalf 1 4 0 3960K 2460K kqread 1 39:12 0.00% imap
44043 thomas 1 4 0 2960K 1496K kqread 0 34:32 0.00% imap
62774 root 4 20 0 6288K 4384K kserel 0 30:51 0.00%
python
21221 gandalf 1 4 0 3408K 1576K kqread 1 27:16 0.00% imap
12982 gandalf 1 4 0 3752K 1980K kqread 1 27:07 0.00% imap
94248 gandalf 1 4 0 4256K 2200K kqread 1 26:52 0.00% imap
60809 gandalf 1 4 0 3776K 2036K kqread 1 26:07 0.00% imap
508 root 1 4 0 1420K 976K kqread 0 3:59 0.00%
dovecot
91567 gandalf 1 4 0 8400K 4684K select 0 2:56 0.00% sshd
A CPU szinte nem csinal semmit. A postgres allapota altalaban "getblk"
vagy "biord". A gep egy FreeBSD 6.1-p6 rendszer, dual core intel 2.66
CPU es van benne egy tukrozott SATA vinyo. Az atacontrol szerint SATA150
modban. Az a legnagyobb baj, hogy ha
"select count(*) from from nagyon_nagy_tabla where <feltetel>"
tipusu lekerdezest futtatok, akkor is nagyon lassu. Ez 1 tablazat, es
seq scan-t hasznal a tablara. Tehat gyakorlatilag csak vegigolvas egy
file-t. A tablaban 700 000 rekord van es 3GB a tabla merete a lemezen.
Megis tobb percig tart mire lefut ez a lekedezes. Hogyan tudnam gyorsitani?
Koszonom,
Laci
További információk a(z) BSD levelezőlistáról