2011-02-14 42 views
5

我在apache服務器上使用http保持活動,
假設我要求它保持連接打開最多2分鐘...
現在,如果連接已創建且閒置一分鐘,資源由php持有,
像mysql連接,文件句柄等,會被釋放還是會存活呢?確實http:keep-alive使php資源保持打開狀態還是釋放所有資源?

+0

問題是,您無法在新請求中識別您的佔位資源。我想它只是指示appache不會退出已經開始處理您的請求的進程。但在HTTP 1.1中,這個保持活動選項不再使用。 B/c不開始處理不同的請求。有趣的問題。希望有人能給出明確的答案。導致快速搜索沒有揭示「簡單」的答案。 – Raffael 2011-02-14 14:36:10

+0

它不是它沒有使用,它的默認值...因此,httpd.conf文件中有一個選項可以啓用它並告訴它需要多少時間才能打開它...而且,我希望有人給我一個真正的答案:) – Shrinath 2011-02-14 16:24:32

回答

3

確認。 Keep-Alive是一種防止代價高昂的TCP連接協商的機制。您的PHP進程/線程正常啓動,需要像往常一樣分配所有資源。

關於高負載情況,甚至可以保持保持活動時間不要太高:所有連接請求都會爭用服務器的空閒連接插槽。如果所有插槽均由保持連接狀態正在使用,則其他用戶可能無法連接。

但是,像往常一樣,槽的最佳數量和良好的保活期取決於您的具體負載情況。

1

不,http keep-alive保存tcp連接的資源。 PHP和MySQL甚至不會意識到該連接是打開的,當你做出下一個請求時,它會很快,因爲時間花在解析IP地址上,並且打開新的TCP連接將被保存,所有這些事情都保留在Apache中。