- PR -

PostgreSQLのINSERT動作が遅い

1
投稿者投稿内容
kei
ベテラン
会議室デビュー日: 2005/03/18
投稿数: 53
投稿日時: 2006-03-17 13:02
keiと申します。

LinuxにPostgreSQLをインストールし、大量のデータをINSERTさせているのですが、
ほとんど同じハード、ソフトで動作速度が極端に異なってしまっております。
postgreSQLを走らせたときのTOPコマンドで出てくるpostmasterというプロセスが
一方のサーバでは、殆どSTAT"R"滞在なのに対し、もう一方のサーバでは殆ど
STAT"D"滞在となっています。CPU使用率もSTAT"D"滞在の方は非常に低いです。
※STAT R:実行可能 S:停止 D:割り込み不可の停止

なぜなのか調査しているのですが、解決に至っておりません。
ちなみに、ハードの購入時期は1年ほど間があります。
チップセット等が変更になっていて、それが影響していたりするのでしょうか。

ベンチマークテストの実行時間、スコアはほぼ同じになっています。

以下より比較データです。

■ラックサーバ1(処理が早いほう)1年ぐらい前に購入
HARD:IBM eServer xSeries 336 8837PKU
OS:RedHat Enterprise ES3
Kernel:2.4.21-4.ELsmp
MEM:1Gbyte
SWAP:2Gbyte
PostgreSQL:postgresql-8.0.1

・SQLデータ更新処理
 perl sql_access_update.pl(SQLデータベースのみを更新するスクリプトです)
 0m45.902s
 TOPコマンドでのプロセス状況
 PS STAT CPU
 -----------------------------------
 perl R,S 10.2〜11.8%(殆どSTAT"R"に滞在していました。)
 postmaster R,D 6.1〜9.0%(殆どSTAT"R"に滞在していました。)
 ※STAT R:実行可能 S:停止 D:割り込み不可の停止

・ベンチマークテスト結果
 TEST BASELINE RESULT INDEX

 Dhrystone 2 using register variables 116700.0 4375458.5 374.9
 Double-Precision Whetstone 55.0 731.7 133.0
 Execl Throughput 43.0 2452.8 570.4
 File Copy 1024 bufsize 2000 maxblocks 3960.0 171622.0 433.4
 File Copy 256 bufsize 500 maxblocks 1655.0 45774.0 276.6
 File Copy 4096 bufsize 8000 maxblocks 5800.0 428930.0 739.5
 Pipe Throughput 12440.0 582058.4 467.9
 Pipe-based Context Switching 4000.0 77496.3 193.7
 Process Creation 126.0 6572.8 521.7
 Shell Scripts (8 concurrent) 6.0 314.1 523.5
 System Call Overhead 15000.0 507955.5 338.6
  =========
  FINAL SCORE 375.9

■ラックサーバ2(処理が遅いほう)新しく購入
HOST:sstsv9
HARD:IBM eServer xSeries 336 8837PKT
OS:RedHat Enterprise ES3
Kernel:2.4.21-4.ELsmp
MEM:1Gbyte
SWAP:2Gbyte
PostgreSQL:postgresql-8.0.1

・SQLデータ更新処理
 perl sql_access_update.pl(SQLデータベースのみを更新するスクリプトです)
 15m21.325s(15分もかかっています!!!)
 TOPコマンドでのプロセス状況
 PS STAT CPU
 -----------------------------------
 perl S,R 0.6〜1.0%(殆どSTAT"S"に滞在していました。)
 postmaster D,R 0.3〜1.2%(殆どSTAT"D"に滞在していました。)
 ※STAT R:実行可能 S:停止 D:割り込み不可の停止
 ★現用ラックサーバに比べて、CPU使用率が低く、postmasterのSTATが現用サーバが
  殆どR滞在に対して、新サーバは殆どD滞在と、異なる動きが見られました。
  それに合わせて、perlプロセスも同じような動きになってました。

・ベンチマークテスト結果
 TEST BASELINE RESULT INDEX

 Dhrystone 2 using register variables 116700.0 4271409.6 366.0
 Double-Precision Whetstone 55.0 754.6 137.2
 Execl Throughput 43.0 2900.5 674.5
 File Copy 1024 bufsize 2000 maxblocks 3960.0 167468.0 422.9
 File Copy 256 bufsize 500 maxblocks 1655.0 43698.0 264.0
 File Copy 4096 bufsize 8000 maxblocks 5800.0 414312.0 714.3
 Pipe Throughput 12440.0 579316.8 465.7
 Pipe-based Context Switching 4000.0 74413.1 186.0
 Process Creation 126.0 7585.5 602.0
 Shell Scripts (8 concurrent) 6.0 307.7 512.8
 System Call Overhead 15000.0 507963.5 338.6
  =========
  FINAL SCORE 380.9


以上よろしくお願いします。
1

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