我一直在Windows Server 2003上运行PostgreSQL,没有太多的麻烦,所以为了回答我自己的问题似乎很好。
不过,我即将推出一个新项目,并且正在考虑使用Linux机箱,因为稳定性和性能至关重要。 由于PostgreSQL似乎大部分是在Linux发行版上开发的,也许最好是坚持使用Linux?
PostgreSQL在Linux上的运行速度肯定比在Windows上运行速度更快(我把它称为编写它的Windows端口的人之一。)它是为Unix风格的体系结构devise的,并且在Windows上实现了相同的体系结构,这意味着它做了一些Windows没有被devise好的事情。 它工作正常,但不能很好地执行。
例如,PostgreSQL使用每个连接的进程模型,而不是线程。 Windows被devise为执行线程。 例如,如果您的应用程序执行了大量的连接和断开连接,那么它在Windows上肯定会运行得更慢。
围绕文件系统也有一些不完全支持NTFS的假设。
一件事你真的需要考虑 – 如果你在Windows上,大多数防病毒产品在与PostgreSQL一起使用时会出错,因为它们不适用于这种types的工作负载(例如1000个不同的进程读取和写入同一个文件通过不同的手柄)。 这意味着强烈的build议是,如果可能的话,总是要卸载任何防病毒软件(只是禁用它,或者排除PostgreSQL进程/文件通常是不够的)。 这不仅仅是出于性能的原因,还有负载下的稳定性。
这很难回答:正如Ken指出的那样,Postgres在操作系统之间没有任何区别,在Windows中它和Linux一样稳定/不稳定。
这个问题唯一的答案是:试一下。
build立一个Linux服务器和Windows服务器,使用相同的规格,在这两台机器上使用相同数量的数据并运行testing。
PS:这个票数很接近,因为在serverfault可能会更好
我的理解是,对于相同的硬件,您将在Linux上获得更好的性能,而不是Windows。 而且,虽然Postgres在Windows上运行,但它已经在* nix上运行了很长时间了。 YMMV当然取决于你的情况。
对Postgres性能的一个很好的参考是“PostgreSQL 9.0高性能”( https://www.packtpub.com/postgresql-9-0-high-performance/book )。 这个标题有点用词不当,因为它涵盖的不仅仅是9.0版本。
AFAIK Postgres不歧视,他们不削弱Windows上的function,或类似的东西。 所以Postgres没有任何需要Linux的东西。
一般来说,询问Linux可能会更好。 与Windows作为一个通用的服务器平台。
意见:但为了我的钱,服务器总是运行Linux。 永远不会梦想把关键任务服务器软件放在Windows上。 只是我2美分。 意见结束。