PostgreSQL 是否适合某一种操作系统?它在 Linux 上比在 Windows 上更好吗?

PostgreSQL 是否适合某一种操作系统?它在 Linux 上比在 Windows 上更好吗?

我一直在 Windows Server 2003 上运行 PostgreSQL,没有任何问题,而且速度很快,因此回答我自己的问题,它似乎很好。

但是我即将启动一个新项目,并正在考虑使用 Linux 机器,因为稳定性和性能至关重要。由于 PostgreSQL 似乎主要是在 Linux 发行版上开发的,也许坚持使用 Linux 会更好?

答案1

PostgreSQL 在 Linux 上的运行速度肯定比在 Windows 上快(我是它的 Windows 移植版的编写者之一,这么说...)它是为 Unix 风格的架构设计的,并在 Windows 上实现了相同的架构,这意味着它可以做很多 Windows 无法做好的事情。它作品不错,但是性能不太好。

例如,PostgreSQL 使用每个连接一个进程的模型,而不是线程。Windows 的设计就是为了实现线程。例如,如果您的应用程序进行大量连接和断开连接,那么它在 Windows 上的运行速度肯定会明显变慢。

关于文件系统的一些假设也不完全有利于 NTFS。

你真正需要考虑的一件事是——如果你使用的是 Windows,大多数防病毒产品将要与 PostgreSQL 一起使用时会出现错误,因为它们不习惯这种类型的工作负载(例如 1000 个不同的进程通过不同的句柄读取和写入同一个文件)。这意味着强烈建议尽可能始终卸载任何防病毒软件(仅禁用它或排除 PostgreSQL 进程/文件通常是不够的)。这不仅仅是为了性能原因,也是为了负载下的稳定性。

答案2

这个问题很难回答:正如 Ken 所说,Postgres 在操作系统之间没有任何区别,它在 Windows 上和在 Linux 上一样稳定/不稳定。

这个问题唯一真正的答案是:尝试一下。

设置具有相同规格的 Linux 服务器和 Windows 服务器,在两台机器上使用相同数量的数据并运行测试。

PS:这个问题投票结果接近,因为这个问题最好在 serverfault 上提问

答案3

据我所知,对于相同的硬件,在 Linux 上的性能要比在 Windows 上更好。此外,虽然 Postgres 可以在 Windows 上运行,但它在 *nix 上运行的时间要长得多。当然,这取决于您的情况。

关于 Postgres 性能的一个非常好的参考资料是“PostgreSQL 9.0 高性能”(https://www.packtpub.com/postgresql-9-0-high-performance/book)。这个标题有点用词不当,因为它涵盖的不仅仅是 9.0 版本。

答案4

据我所知,Postgres 不会歧视任何人,他们不会削弱 Windows 上的功能,或诸如此类的事情。因此 Postgres 并不需要 Linux。

您最好一般性地询问有关 Linux 和 Windows 作为通用服务器平台的问题。

观点:但在我看来,服务器总是运行 Linux。我做梦也不会想到把关键任务服务器软件放在 Windows 上。这只是我的一点看法。观点结束。

相关内容