PostgreSQLは1つのOSに適していますか?LinuxよりもWindowsよりも優れていますか?


26

私はPostgreSQLをWindows Server 2003上で滞りなく高速で実行してきたので、自分の質問に答えるには問題ないようです。

しかし、私は新しいプロジェクトを立ち上げようとしており、安定性とパフォーマンスが重要であるため、代わりにLinuxボックスの使用を検討しています。PostgreSQLは主にLinuxディストリビューションで開発されているように見えるので、Linuxを使い続ける方が良いでしょうか?


2
開発者によって実行される場合でも、プラットフォームの選択はsysadmin機能です。
-araqnid


pg拡張は、Windows用ではなくLinux用にパッケージ化されているように思えます。
ニールマクギガン

回答:


46

PostgreSQLは、WindowsよりもLinuxで確実に高速に動作します(そして、Windowsのポートを書いた人の1人と言います) Windowsがうまく機能しないように設計されていない多くのことを行います。正常に動作しますが、同様に機能しません。

たとえば、PostgreSQLはスレッド化ではなく、接続ごとのプロセスモデルを使用します。Windowsは、スレッドを実行するように設計されています。アプリケーションが多くの接続と切断を行う場合、たとえばWindowsでは間違いなく大幅に遅くなります。

また、NTFSを厳密に支持していないファイルシステムの周囲にもいくつかの仮定があります。

あなたが本当に考える必要がある1つのこと-あなたがWindows上にいる場合、PostgreSQLで使用するとほとんどのウイルス対策製品このタイプのワークロードに使用されないためバグが発生します(1000の異なるプロセスが同じファイルを読み書きするなど)異なるハンドルを介して)。つまり、可能な場合は常にウイルス対策ソフトウェアをアンインストールすることを強くお勧めします(多くの場合、それを無効にするか、PostgreSQLプロセス/ファイルを除外するだけでは十分ではありません)。そして、これはパフォーマンス上の理由だけでなく、負荷下での安定性のためでもあります。


ありがとう!私の場合、Windowsにこだわるのは問題ないように思えますが、信頼できる回答が得られてうれしいです。パフォーマンスも優れています。WindowsキャッシュとIO速度(最新のドライバーがある場合)が私を助けてくれると

いくつかの実世界のスループットベンチマークを参照してください。

1
ところで、接続プールの使用は、プロセスの作成/破棄のコストが高くなるため、Windowsで特に役立ちます。
クレイグリンガー

古い8.1日と8.2日で、Windows上のPostgreSQLとLinuxのPostgreSQLを並べて比較しました。負荷については、Linuxは約50%高速でした。ただし、クライアントが別のボックスにあり、同じJavaコードを使用してオープン接続で生のネットワークスループットをテストしたため、両側がLinuxであった場合よりも両側であった場合の方が30%高速だったため、そのどれだけがネットワーキングであったかは明確ではありませんWindows。興味深いことに、一方がLinuxで、もう一方がWindowsの場合、両側のLinuxよりも15%遅くなりました。
kgrittn

2

これを答えるのは難しいです。Kenが指摘したように、PostgresはOSに違いをもたらさず、Linuxと同様にWindowsでも安定/不安定です。

この質問に対する唯一の本当の答えは、試してみることです。

LinuxサーバーとWindowsサーバーを同じ仕様でセットアップし、両方のマシンで同じ量のデータを使用して、テストを実行します。

PS:これはserverfaultでより良く尋ねられるかもしれないので、これは近い票を持っています


ServerFaultの方が良いですか?システム管理者の問題ではなく、開発者のソフトウェアの問題として分類したでしょう。

1
これはソフトウェアの問題ではありません。開発者は自分のSQLについて心配する必要はありません。PostgreSQLはLinuxでWindowsと同じサメンSQLを使用します。
フランクヘイケンス

2

同じハードウェアで、WindowsではなくLinuxの方がパフォーマンスが向上することを理解しています。また、PostgresはWindows上で実行されますが、* nix上ではずっと長く実行されています。もちろんあなたの状況に応じてYMMV。

Postgresのパフォーマンスに関する非常に優れたリファレンスは、「PostgreSQL 9.0 High Performance」(https://www.packtpub.com/postgresql-9-0-high-performance/book)です。タイトルは、バージョン9.0だけではなく、少し誤った名称です。


-1

AFAIK Postgresは差別をせず、Windowsの機能を損なうことも、そのようなこともしません。そのため、Linuxを必要とするPostgresについては何もありません。

Linuxについて一般的に尋ねる方が良いかもしれません。vs.一般的なサーバープラットフォームとしてのWindows。

意見:しかし、私のお金のために、サーバーは常にLinuxを実行しています。ミッションクリティカルなサーバーソフトウェアをWindowsに搭載することを夢見ないでしょう。ちょうど2セントです。意見の終わり。


stability and **performance** are crucial
ヴラディスラフラストラスニー14

他の回答を読んで、回答のこの推測が間違っている理由を確認してください。回答を削除することを検討してください。
サム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.