2016-12-10 174 views
0

當我張貼從C#應用程序(Windows服務器),以它運行使用POST方法的另一臺服務器(Ubuntu的)在PHP頁面,超時錯誤發生

我張貼最低1000請求每個數據第二到PHP頁面,

C#應用程序是一個多線程的應用程序,一旦接收到的數據傳輸的數據發佈到PHP頁面

當我連續張貼在C#應用程序DATAS我得到發佈超時錯誤 ,一旦我重新啓動ap它可以工作幾個小時。 [注意:由於PHP需要時間來完成任務,所以新的請求正在等待,它會創建隊列,並且其等待時間超過2分鐘以上,並且即時超時錯誤]。

我們兩個服務器使用的CPU和RAM使用的最多50%的

我檢查兩個C#代碼和PHP代碼都工作正常,沒有問題或錯誤

,我檢查MySQL配置也很好,但我不知道Apache配置。

Apache的配置設置爲默認

是我認爲可能是我應該配置Apache或PHP來處理每秒1000個請求,我不知道究竟是因爲相同的代碼工作正常,直到客戶端請求 增加。

在此先感謝好友:)

回答

0

感謝ü的善意回覆兄弟, 這是Ubuntu的服務器上的配置問題,我沒有能夠快速CGI現在它工作正常

0

我想你可能會遇到TCP端口耗盡問題。如果您正在對另一臺服務器進行多次連續調用,並且沒有正確管理TCP連接,那麼操作系統將不會立即釋放它爲傳出呼叫創建的TCP端口連接,並會爲下一次呼叫分配更多操作系統資源。我認爲默認的TCP端口釋放時間可能高達2分鐘。

查看How do I prevent Socket/Port Exhaustion?瞭解更多詳情。爲了確保我們需要查看您的C#代碼,以瞭解如何釋放創建WebClient調用時使用的資源。

如果是端口耗盡問題,那麼您將不得不使用手動創建的WebClient實例池來管理對PHP服務器的傳出呼叫 - 即使釋放WebClient也可能不會立即釋放WebClient的操作系統資源利用。

+0

這是在Ubuntu上的配置問題,我不能夠快速的CGI/FPM,現在它工作正常。 –

+0

如果您發佈了您遇到的問題以及如何解決問題,這將有所幫助 - 這將意味着搜索與您原始問題相似的帖子的人將會找出導致您的問題的原因。只是告訴我「我修好了」而未真正給出解決方案對於未來發現相同問題的人沒有幫助。 SO資源既是「幫助熱線」,也是問題/解決方案資源。 – PhillipH