2012-03-01 52 views
0

我有3個表,每次訪問。我的PHP網頁將請求發送到一箇中間的基於C語言的層,然後將這些調用轉移到postgresql。但是,當我從單個選項卡瀏覽時,所有記錄都會正確提取。但是,當我從許多瀏覽器/選項卡發出更多請求時,至少有一半失敗,並且作爲其嵌入域,調試是真正的問題。我懷疑同時來自不同瀏覽器的數據庫連接會被放入隊列中,並且可能會發生錯誤。有沒有人可以就這個生產問題轉達你的看法?postgresql可以執行多少連接?

回答

1

不要猜測,知道。

您可以讓PostgreSQL記錄連接和斷開連接。它可能已經爲您記錄了一條錯誤消息。檢查日誌。

如果不知道這個「C」層正在做什麼,很難說更多。您可能會發現連接池很有用。也許開始看pgbouncer

0

如果您沒有從C層獲取任何錯誤,請檢查Postgresql日誌文件以查看是否在該錯誤中出現錯誤。

我的初始猜測。將其:

一個)C層是越來越線程和同時與相同的連接做兩件事情之間混淆連接。

或b)C層在完成它們時不會釋放連接,因此您正在達到內存限制。

無論採用哪種方式,您都需要能夠在發現錯誤之前找到該錯誤。

Postgresql本身將處理大量的併發連接,儘管您可能希望將它們合併以減少每個會話的設置/拆卸時間。

相關問題