私はこのマシンでよ:3GHzの 4GBのRAMのDDR2 @UBUNTU 11.04 + PHP + POSTGRESQLパフォーマンスを向上させる
インテルCore 2デュオE8400
PHP 5.3.6 pgsqlの9.1
私は」同じような仕様のMacで5分かかるPHPスクリプトを実行しています。 このphpスクリプトは、本質的に、dbをいくつかインポートして再作成します。
このコンピュータでは、20分以上実行されます。
奇妙なことは、彼らが(メモリ制限を-1)必要なだけのRAMを使用するには、PHP & POSTGRESQL
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8408 postgres 20 0 2188m 44m 40m D 4 1.1 0:20.71 postgres
8407 gianps 20 0 380m 225m 6620 S 2 5.7 0:11.78 php
top - 16:08:32 up 3:35, 3 users, load average: 1.26, 1.15, 0.80
Tasks: 187 total, 1 running, 185 sleeping, 0 stopped, 1 zombie
Cpu(s): 4.8%us, 2.7%sy, 0.2%ni, 87.0%id, 5.1%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 4056572k total, 2541972k used, 1514600k free, 117772k buffers
Swap: 3905532k total, 0k used, 3905532k free, 902048k cached
IセットアップPHP(CLIおよびApacheの両方)の両方からCPUの使用であると使用するために調整されたのpostgres:
のshared_buffers = 2ギガバイト
effective_cache_size = 3072メガバイトこのスクリプトの使用をできるように
任意の提案は、より多くのCPU &をRAMとより速く走る?
おかげ
更新: をいくつかの調査の後、私はそれは、同期設定が(このような状況で)コミットことがわかった私のスクリプト10倍は速くなります。コミット同期かを理解するには、このオプションをデフォルトにしても安全ではないので、必要なときに、私はちょうどオフに切り替え
set synchronous_commit to off;
.. は、データをインポートするdocumentation
両方のコンピュータに同じハードディスクが割り当てられています(2 7200 rpm)。私はいくつかの隠し値は、より多くのラムCPUを使用してPHP/Postgreをロックしていると思います。 –
オフに同期コミットに変更私の問題を解決しました。コミットについてのあなたの情報のおかげでそれを見つけました。 –