国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Apache > 正文

Apache 性能最優化分析(6)

2024-08-27 18:25:57
字體:
來源:轉載
供稿:網友
3) 單socket中的accept串行化

  以上言及的方案對多socket服務器是相當不錯的,但只有一個socket的情況又如何呢?理論上,由于在連接請求到來之前所有子進程將阻塞在accept中,單個socket不會產生上述種種問題。但實際上,上述非阻塞解決方案所帶來的"回旋(spinning)"問題在這里只不過被掩蓋起來了。在絕大多數TCP協議棧的實現中,一個接請求到來時內核將喚醒所有阻塞在accept中的進程。它們之一將得到此請求并返回用戶空間,其余的進程將返回內核重新休眠。這將帶來與多socket非阻塞解決方案相同的資源浪費。

  由于這點原因,我們發現如果為socket串行化,許多系統表現得更"友好"--即使是一個socket的情況。這是單個socket串行化作為絕大多數情況的缺省配置的原因。在Linux上不甚精確的(Linux 2.0.30 / 雙Pentium Pro 166 w / 128Mb內存)實驗表明,對每次請求而言,串行化的單個socket僅比沒有串行化的socket損失不到3%的性能。但未串行化的socket顯示出每次連接請求100毫秒的延時。這也可能僅僅由于過長的通訊距離造成的。如果您不想串行化單個socket,可以定義宏SINGLE_LISTEN_UNSERIALIZED_ACCEPT。這樣,僅有一個socket的服務器將不會串行化。

  4) 延遲關閉(Lingering Close)

  就象draft-ietf-http-connection-00.txt第8節討論的那樣,為了使服務器能夠可靠地實現HTTP協議,有必要獨立地關閉每個方向上的通訊(每個TCP連接有兩個方向,每個方向是分別獨立的)。這個事實往往被其他服務器所忽視,而Apache 1.2就已經正確地處理了。

  當這個特性增加到Apache中時卻在許多版本的Unix中引起了問題。這是TCP規范的短見造成的--它沒有聲明FIN_WAIT_2有超時,但也沒有阻止這樣的實現。在沒有超時的系統中,Apache 1.2將導致許多socket將永遠處于FIN_WAIT_2的狀態。這可以簡單地用打最新TCP/IP補丁的方法避免。然而在提供商從不發行補丁的系統上(也就是SunOS4--雖然得到源代碼許可證的人可以自己打補丁),我們決定不直接使用這一特性。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中超| 如皋市| 云阳县| 天全县| 深泽县| 成都市| 梅州市| 乐安县| 塔城市| 寿光市| 普宁市| 亚东县| 西乡县| 东乌| 正安县| 南乐县| 湖州市| 台安县| 崇明县| 扎囊县| 三门峡市| 卫辉市| 永靖县| 山东| 五大连池市| 吉木萨尔县| 泽州县| 闽清县| 巴彦县| 恩平市| 甘洛县| 遂宁市| 石门县| 呈贡县| 玉林市| 河北区| 安阳县| 武夷山市| 兰坪| 古浪县| 搜索|