- PR -

PostgreSQLのINSERT動作が遅い

投稿者投稿内容
未記入
会議室デビュー日: 2006/03/29
投稿数: 1
投稿日時: 2006-03-29 18:55
15min / 5万行 insert = 18msec/insert
ディスクのシーク速度程度かも。

1行ずつコミットしていると思われる。
pg_hba.conf内のfsyncの設定の違い,とか。

kei
ベテラン
会議室デビュー日: 2005/03/18
投稿数: 53
投稿日時: 2006-04-11 18:12
回答ありがとうございます。

pg_hba.confを見てみたのですが、
fsyncなるパラメータが見当たりませんでした。

pgbenchの結果ですが、これだけの性能のマシンでこのスコアは
低いですよね。

■マシン
コード:
[postgres@sstsv9 proc]$ more cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Intel(R) Xeon(TM) CPU 3.00GHz
stepping        : 3
cpu MHz         : 3000.236
cache size      : 0 KB
physical id     : 0
siblings        : 2
runqueue        : 0
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse
sse2 ss ht tm lm
bogomips        : 5989.99

[postgres@sstsv9 proc]$ more meminfo
        total:    used:    free:  shared: buffers:  cached:
Mem:  1053011968 447291392 605720576        0 115499008 215642112
Swap: 2089209856        0 2089209856
MemTotal:      1028332 kB
MemFree:        591524 kB
MemShared:           0 kB
Buffers:        112792 kB
Cached:         210588 kB
SwapCached:          0 kB
Active:         253816 kB
ActiveAnon:      51960 kB
ActiveCache:    201856 kB
Inact_dirty:     89092 kB
Inact_laundry:   22716 kB
Inact_clean:         0 kB
Inact_target:    73124 kB
HighTotal:      130864 kB
HighFree:         3124 kB
LowTotal:       897468 kB
LowFree:        588400 kB
SwapTotal:     2040244 kB
SwapFree:      2040244 kB
HugePages_Total:     0
HugePages_Free:      0
Hugepagesize:     2048 kB

[postgres@sstsv9 proc]$ more version
Linux version 2.4.21-4.ELsmp (bhcompile@daffy.perf.redhat.com) (gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-20)) #1
SMP Fri Oct 3 17:52:56 EDT 2003






■pgbenchスコア
コード:
[postgres@sstsv9 pgbench]$ pgbench bench
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
number of clients: 1
number of transactions per client: 10
number of transactions actually processed: 10/10
tps = 27.776389 (including connections establishing)
tps = 28.017483 (excluding connections establishing)



ディスクの書込み/読み込み速度もベンチマークテストの結果を
見る限りは遅くはないみたいです。

めぐ
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 86
お住まい・勤務地: 千葉県内
投稿日時: 2006-04-13 09:05
fsyncパラメータは、postgresql.confにあります。
kei
ベテラン
会議室デビュー日: 2005/03/18
投稿数: 53
投稿日時: 2006-04-14 13:46
1行ずつのコミットで、ディスクシーク時間が全体処理の遅延に
影響しているとしたら、どのパラメータをどのような値にセット
すれば最適な環境を構築することが可能なのでしょうか?

postgresql.confの設定に関してはあまり分かっていません。
どうかよろしくお願いいたします。
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-04-14 17:27
A,B 2台あるうちの片方だけが同じ構成、同じ処理をしているにもかかわらず遅い、
というのが当初の質問ではありませんでしたっけ?

両方の設定ファイルは比較したんですか?
kei
ベテラン
会議室デビュー日: 2005/03/18
投稿数: 53
投稿日時: 2006-04-18 10:10
せん様
回答ありがとうございます。

postgresql.confの設定はまったく同じにしています。

OSは同じなのですが、ハードウェアに関しては、少し違いがありまして、
1台は
IBM eServer xSeries 336 8837PKU で、もう1台は
IBM eServer xSeries 336 8837PKT となっています。
違いは、ディスクサイズと、RAIDの構成です。

http://www-06.ibm.com/jp/servers/eserver/xseries/product/x33654/

■8837PKU(早いほう)
チップセット Intel E7520
RAID Ultra 320SCSI(ServeRAID-6i+)
HDD 220.2GB(2.5インチ 73.4GB  Ultra 320 SCSI 10krpm ×3)

■8837PKT(遅いほう)
チップセット Intel E7520
RAID Ultra320 SCSI(オンボード、RAID 1機能付き)
HDD 72.8GB(36.4GB Ultra320 SCSI 15,000rpm×2)

このハードの違いで、こんなにpgbenchの差が出るものなのでしょうか?
ディスクシーク時間が物理的に遅かったとして、何度も書き込む場合に
パフォーマンスを上げる策はあるのでしょうか?
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2006-04-18 10:28
引用:

keiさんの書き込み (2006-04-18 10:10) より:
このハードの違いで、こんなにpgbenchの差が出るものなのでしょうか?
ディスクシーク時間が物理的に遅かったとして、何度も書き込む場合に
パフォーマンスを上げる策はあるのでしょうか?


ひとつの提案になりますが、DBMS の問題かハードの問題かを切り分けるために、DB を使わず単にファイルに対してランダムアクセスで読み書きをするだけの、数十行程度のテストプログラムを作って動かしてみてはどうでしょうか。もしそういうベンチマーク用の出来合いのツールがあればすぐにそれが使えて良いのでしょうけど。
_________________
--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}
おっきー
大ベテラン
会議室デビュー日: 2003/05/01
投稿数: 104
投稿日時: 2006-04-18 11:17
話とは関係ありませんが、8.0.1 はバグが多いので
8.0.7 など最新版を使う方がいいですよ。
7.x系と違い 8.0系は、いろいろ悩まされました。

スキルアップ/キャリアアップ(JOB@IT)