PS cloud:关于postgresql数据库优化

本文我们以经典ERP管理软件——浪潮PS cloud管理软件为例,对关于postgresql数据库的优化进行相应的介绍。PG的配置文件是数据库目录下的postgresql.conf文件,可支持K,M,G 这样的参数,只要修改相应参数后重新启动PG服务就 OK 了。

shared_buffers:这是最重要的参数,postgresql 通过 shared_buffers 和内核和磁盘打交道,因此应该尽量大,让更多的数据缓存在 shared_buffers 中。通常设置为实际 RAM 的 10%是合理的,比如 50000(400M) 。

work_mem:在 pgsql 8.0 之前叫做 sort_mem。postgresql 在执行排序操作时,会根据 work_mem 的大小决定是否将一个大的结果集拆分为几个小的和 work_mem 查不多大小的临时文件。显然拆分的结果是降低了排序的速度。因此增加 work_mem 有助于提高排序的速度。通常设置为实际 RAM 的 2% -4%,根据需要排序结果集的大小而定,比如 81920(80M)。

effective_cache_size:是 postgresql 能够使用的最大缓存,这个数字对于独立的 pgsql 服务器而言应该足够大,比如 4G 的内存,可以设置为3.5G(437500)maintence_work_mem:这里定义的内存只是在CREATE INDEX,VACUUM 等时用到,因此用到的频率不高,但是往往这些指令消耗比较多的资源,因此应该尽快让这些指令快速执行完毕:给maintence_work_mem 大的内存,比如512M(524288) 。

max_connections:通常,max_connections的目的是防止max_connections * work_mem超出了实际内存大小。比如,如果将work_mem设置为实际内存的2%大小,则在极端情况下,如果50个查询都有排序要求,而且都使用2%的内存,则会导致swap的产生,系统性能就会大大降低。当然,如果有4G的内存,同时出现50个如此大的查询的几率应该是很小的。不过,要清楚max_connections和work_mem的关系。

你也可以使用pg参数优化工具pgtune来自动生成这些参数,你只需要选择pg版本、操作系统、数据库用途、服务器总内存、连接数,最后点击“生成”按钮,就在在右侧显示优化后的pg参数。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();