在Windows上使用最新版本的PostgreSQL,如何提高性能?

3

一篇旧的问题提出了PostgreSQL在Windows上的性能问题。自那时以来,PostgreSQL已经有了一些重大改进... Windows和Linux版本之间的性能差距是否得到了改善?

4个回答

5
PostgreSQL现在在Windows上表现相当不错。阅读为Linux或BSD编写的调优建议时,需要使用较小的shared_buffers值,因此要注意这一点。性能差距已经缩小了很多,但是调整良好的Linux+Pg仍然比调整良好的Windows+Pg表现更好。
现在大多数(非文件系统相关)有关Pg性能的建议在Windows和Linux上都适用得很好,据我所知。像在Linux/BSD上一样,调整random_page_cost和effective_cache_size对于获得最佳性能非常重要,您可能会发现查询计划器的选择在进行调整之前是次优的。同样,您需要密切关注磁盘子系统,尽可能拥有更多的RAM等。
在Windows上,连接数较多时会出现问题,因此我建议在其前面放置PgBouncer或PgPool-II,除非您有一个应用服务器可以自行进行连接池管理。在*nix上,Pg也不能处理大量并发连接,只不过在Windows上更糟糕。
连接的启动/关闭成本在Windows上更高,这是使用连接池的另一个原因。Pg无法使用fork()来有效地启动新后端,它必须使用EXEC_BACKEND并执行比在Linux上更多的新进程设置。
虽然它更加专注于Linux/BSD,但我推荐Greg Smith的《PostgreSQL高性能》一书,他是重要的PostgreSQL贡献者。如果您关心Pg性能,那么这是最好的去处。

1

这个链接的问题涵盖了 PostgreSQL 8.2,它于2006年发布。最新版本是9.1,并且具有一些重大的性能和功能改进。然而,可能会始终存在性能差距,因为在Linux中有更多的选项可用于选择文件系统、驱动程序等。

话虽如此,如果您在Linux中做出了错误的选择,情况可能会变得更糟。唯一确定性能是否可接受的方法就是尝试一下,恐怕这完全取决于您的使用模式。


0

您可以查看相关版本的发布说明。但是,这些改进是否能帮助您解决特定问题还需要进一步验证。同时,也不清楚链接问题是否会影响到您的具体情况。


0
一些基本测试表明PostgreSQL表现良好 - 当您使用少于数百个连接时,速度与MSSQL相似。我知道有一个安装在MS上用于“实时”应用程序的PostgreSQL。仍然存在一些差距,但对于通常的负载来说并不重要。
另一个问题是RAM。在MS上,您需要更多的内存才能获得相同的速度。服务器不能每次都使用交换空间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接