2011-12-03 13 views

答えて

4

最近、PostgreSQLはWindowsではうまく機能します。より小さなshared_buffers値を使用する必要がある傾向があります。したがって、LinuxまたはBSDのチューニング・アドバイスを読むときに注意してください。パフォーマンスの差はかなり狭くなっていますが、うまく調整されたLinux + PgはWindows + Pgのチューニングではまだ優れています。

Pgのパフォーマンスに関する(ファイルシステム以外の)アドバイスのほとんどは、WindowsとLinuxのAFAIKにかなりよく適用されます。 Linux/BSDと同じように、random_page_costとeffective_cache_sizeをチューニングして最高のパフォーマンスを得ることが重要です。そうするまで、最適化されていないクエリプランナーの選択肢があるかもしれません。同様に、ディスクサブシステムに細心の注意を払い、できるだけ多くのRAMを確保する必要があります。

Windowsでの接続数が多いため、PgBouncerまたはPgPool-IIをその前に置くことをお勧めします独自の接続プーリングを行うアプリケーションサーバーを使用している場合を除きます。 * nixでも膨大な数の同時接続でPgが特にうまく動作しません.Windowsではそれほど悪くありません。

可能な場合は接続プールを使用するもう1つの理由は、Windowsの接続開始/ティアダウンコストが大きいことです。 Pgはfork()を使用して効率的に新しいバックエンドを開始することはできません。これはEXEC_BACKENDになり、Linuxよりも新しいプロセス設定が行われます。

Linux/BSDの方がやや重視されていますが、PostgreSQLの重要な貢献者であるGreg Smith氏の著書 "PostgreSQL high performance"をお勧めします。あなたがPgのパフォーマンスを心配しているなら、それは最高の場所です。

0

該当するリリースのRelease Notesで作業できます。しかし、上記の改善があなたの特定のケースであなたを助けるかどうかは別のことです。また、リンクされた質問の問題があなたの特定のケースに影響を与えるかどうかは明確ではありません。

1

リンクされた質問は、2006年にリリースされたPostgreSQL 8.2をカバーしています。最新のリリースは9.1であり、主要なパフォーマンスはおよびです。しかし、LinuxよりもLinuxよりも多くのオプションがWindowsよりも多いため、パフォーマンスには常に差があります。

を間違ってにするとLinuxでは、悪化する可能性があります。パフォーマンスが許容できるかどうかを知る唯一の方法は、私が恐れていることです。すべてがあなたの使用パターンに依存します。

0

いくつかの基本的なテストによれば、PostgreSQLはうまく動作します。何百もの接続を使用しないと、スピードはMSSQLと似ています。私はPostgreSQLがMSの "リアルタイム"アプリケーションに使用されるインストールを知っています。まだ若干のギャップがありますが、通常の負荷ではそれほど重要ではありません。

その他少し質問がRAMです。 MSでは、同じ速度を持つためにさらに多くのメモリが必要です。サーバーは毎回スワップを使用してはなりません。

関連する問題