我这台机器上:UBUNTU 11.04 + PHP + PostgreSQL的增强性能
英特尔Core 2 Duo E8400 @ 3GHZ 4GB内存DDR2
PHP 5.3.6 的pgsql 9.1
我m运行一个PHP脚本,需要5分钟的时间在类似规格的mac上。 这个php脚本本质上是重新创建一个将数据导入它的数据库。
在这台电脑上运行超过20分钟。
奇怪的是利用CPU的来自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
我安装了PHP(CLI和Apache的),因为他们需要(内存限制-1)使用尽可能多的RAM和调谐postgres的使用方法:
的shared_buffers = 2GB
effective_cache_size = 3072MB
任何建议让该脚本使用更多的RAM &更多的CPU和跑得更快?
感谢
更新: 经过一番调查我发现,设置同步提交(在这种情况下),使我的脚本快10倍。
set synchronous_commit to off;
,因为是不是安全,使此选项默认,我只是其切换到关闭需要的时候.. 了解什么同步提交并documentation
两台计算机都有相同的硬盘(sata 2 7200 rpm)。我猜是一些隐藏的价值是锁定php/postgres使用更多的RAM - CPU。 –
更改为同步提交以关闭解决我的问题。感谢您关于提交的信息。 –