2011-12-03 40 views

回答

4

PostgreSQL最近在Windows上表現得相當不錯。您傾向於需要使用較小的shared_buffers值,因此在閱讀針對Linux或BSD編寫的調優建議時請注意。性能差距已經縮小了很多,但經過良好調整的Linux + Pg仍然能夠勝過Windows + Pg。

對於Pg性能的大部分(非文件系統相關)建議現在適用於Windows和Linux,AFAIK。調整random_page_cost和effective_cache_size以獲得最佳性能非常重要,與在Linux/BSD上一樣,並且您可能會發現查詢規劃器選擇是次優的,直到您這樣做。同樣,您需要密切關注您的磁盤子系統,儘可能多地使用RAM等。

您在Windows上的連接數很大時會出現問題,所以我建議將PgBouncer或PgPool-II放在它的前面除非你有一個自己的連接池的應用服務器。對於* nix上的大量併發連接,Pg表現得並不是特別好,它在Windows上更糟糕。

Windows上的連接啓動/拆卸成本較高,這是在可能的情況下使用連接池的另一個原因。 Pg不能使用fork()有效地啓動新的後端,它必須到EXEC_BACKEND,並且執行比Linux更多的新進程設置。

雖然它更專注於Linux/BSD,但我推薦PostgreSQL的一位重要貢獻者Greg Smith撰寫了「PostgreSQL高性能」一書。如果您擔心Pg表現,這是最好的去處。

0

您可以通過相關版本的Release Notes。但是,提到的改進是否會幫助您解決您的具體問題是另一回事。關聯問題中的問題是否會影響您的具體情況也不清楚。

1

鏈接的問題覆蓋了PostgreSQL 8.2,它於2006年推出。最新版本爲9.1,並且具有一些主要性能功能改進。但是,性能上可能會一直存在差距,因爲在Linux中有比Windows更多的選項 - 文件系統,驅動程序等。

話雖如此,如果您已使錯誤選項Linux,你可能會變得更糟。如果性能可以接受,唯一的方法就是嘗試一下 - 恐怕 - 這一切都取決於您的使用模式。

0

一些基本的測試表明PostgreSQL運行良好 - 當您使用少於幾百個連接時,速度與MSSQL類似。我知道PostgreSQL用於MS上「實時」應用程序的安裝。還有一些差距,但對於平常的負載並不顯着。

一點點其他問題是內存。在MS上,你需要更多的內存才能擁有相同的速度。服務器不能每次都使用交換。

相關問題