nov 05
我的 Mac OS X 系统里的 PostgreSQL 数据库是通过 MacPorts 安装的,默认配置容量非常小,只适合一般的小数据量试验之用,即使开发环境的数据增加到几万条,速度就明显慢了。
在 Mac OS X 下调整 PostgreSQL 的性能,需要做以下步骤:
1、调整postgresql.conf文件中参数,设置为你认为合理或者期望的数值。比如我会提高共享缓存数量到 128MB,并增大 work_mem 和 sort_mem 参数。调整完后,不出意外, PostgreSQL 服务将无法启动,查看其日志(注意,macports 安装的 PostgreSQL 的日志位于:/opt/local/var/log/postgresql83/postgres.log),报:
FATAL: could not create shared memory segment: Cannot allocate memory DETAIL: Failed system call was shmget(key=5432001, size=139018240, 03600). HINT: This error usually means that PostgreSQL's request for a shared \ memory segment exceeded available memory or swap space. To reduce the \ request size (currently 139018240 bytes), reduce PostgreSQL's shared_buffers \ parameter (currently 16384) and/or its max_connections parameter (currently 23). The PostgreSQL documentation contains more information about shared \ memory configuration.
这是系统信号量不够,根据 PostgreSQL 官方网站文档 ,需要进行系统参数调整。
2、利用 sysctl 调整 kernel.sysv.* 相关参数。
先利用以下命令行测试可行的数量级别:
sysctl -w kern.sysv.shmall=327680 sysctl -w kern.sysv.shmmax=536870912
不断调整,不断尝试启动 PostgreSQL 服务,直到能正常启动。
3、最后将理想的 kern.sysv.* 相关参数写到 /etc/sysctl.conf 文件中,让系统启动的时候自动生效:
more /etc/sysctl.conf kern.sysv.shmall=327680 kern.sysv.shmmax=536870912
调整完毕后,速度有明显提升。不过说实话,感觉没有 Ubuntu 桌面系统下高,也许有更多地方需要调整,有时间的时候好好研究一下。
Thu, 10 Jun 2010 11:27:43 +0800
mac , 有钱人, 还没有机会玩mac 呢!
dirk Reply:
Thu, 10 Jun 2010 11:27:43 +0800
黑mac。
用苹果的全套东西,是我的梦想。