我有我自己的VPS安裝PostgreSQL的 - 訪問數據庫的軟件是一個叫PokerTracker程序。遠程PostgreSQL - 極其緩慢
PokerTracker記錄所有你的手和統計,同時玩在線撲克。
我希望這可以從幾個不同的計算機訪問,所以決定將它安裝在我的VPS上,並在幾次打嗝後,我設法讓它連接沒有錯誤。
然而,表現是可怕的。我已經做了大量關於'遠程postgresql慢'的研究等,我還沒有找到答案,所以希望有人能夠提供幫助。
注意事項:
我想執行的查詢是非常小的。當在VPS上本地連接時,查詢立即運行。
雖然遠程運行它,花費約1分鐘,30秒到運行查詢。
該VPS運行100MBPS,然後我連接到它的計算機是在一個8MB線。
兩者之間的網絡通信幾乎是即時的,我可以遠程連接正常,沒有任何延遲,並且正在運行多個運行MSSQL的網站,所有查詢立即運行,無論是遠程連接還是本地連接,因此PostgreSQL似乎都是特定的。
我正在運行他們的軟件的最新版本的軟件和PostgreSQL的最新兼容版本。
該數據庫是一個新的數據庫,幾乎不包含任何數據,我運行真空/分析等都無濟於事,我沒有看到任何改進。
我不明白MSSQL如何查詢幾乎立即又PostgreSQL的掙扎這麼多。
我能夠telnet到VPS IP上的端口5432,沒有任何問題,正如我所說的查詢執行它只需要很長時間。
我在做路由器的時候發現查詢正在運行,幾乎沒有任何帶寬正在被使用 - 但是我再也不希望它對於一個簡單的查詢,但我不確定這是否是問題。我試過在3個不同的網絡上遠程連接(包括不同的路由器),但問題仍然存在。
經由LAN經由另一臺機器遠程連接是即時的。
我也編輯了postgre conf文件以允許更多的內存/緩衝區等,但我不認爲這是問題 - 我要求它做的很簡單 - 它不應該是密集的。
感謝, 瑞奇
編輯:請注意,客戶端和服務器都運行Windows。
這是來自配置文件的信息。
pg_hba - currently allowing all traffic: # TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections: host all all 0.0.0.0/0 md5 # IPv6 local connections: # host all all ::1/128 md5
而且postgresqlconf - 我知道我已經定緩衝區的一些龐大的量/內存這個配置,只是爲了測試它是否是問題 - 顯示註釋的行只是:
listen_addresses = '*' port = 5432 max_connections = 100 shared_buffers = 512MB work_mem = 64MB max_fsm_pages = 204800 shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll' log_destination = 'stderr' logging_collector = on log_line_prefix = '%t ' datestyle = 'iso, mdy' lc_messages = 'English_United States.1252' lc_monetary = 'English_United States.1252' lc_numeric = 'English_United States.1252' lc_time = 'English_United States.1252' default_text_search_config = 'pg_catalog.english'
任何其他需要的信息,請讓我知道。感謝你的幫助。
請發佈查詢,涉及的表的大小和輸出的大小。 – Quassnoi 2011-01-11 12:31:28
這聽起來像一個網絡問題,而不是一個Postgres問題。如果您使用`psql -h server ...`從客戶機執行查詢,會發生什麼?如果你通過ssh隧道來做什麼呢? – 2011-01-11 12:37:19
我知道我會錯過重要的信息。我忘了說兩個操作系統都在運行Windows。如果有必要,我會發布查詢,但這是一個簡單的查詢,只是查看一個表似乎會導致問題。我無法看到它是如何在本地進行查詢的,因爲它是即時的,但遠程運行卻有很大的延遲。 – Ricky 2011-01-11 13:44:23