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

首頁 > 網站 > Apache > 正文

Apache 性能最優化分析(13)

2024-08-27 18:26:01
字體:
來源:轉載
供稿:網友
附錄:預分支(Pre-Forking)模型

  Unix上的Apache是應用了預分支模型的服務器。父進程的責任僅在于繁衍子進程,它從不響應來自socket的任何請求。真正處理連接的是子進程,每個子進程在終止之前會(逐一地)為多個連接服務。父進程根據服務器負載的變化(通過監視記分板,記分板由子進程負責保持同步)生成新的或者殺掉舊的子進程。

  這種模型為服務器提供了其他模型所不具備的健壯。父進程的代碼非常簡單,它有足夠的信心保證在不出現錯誤的情況下持續運行。子進程就很復雜了,而且當您加入了第三方提供的模塊后,將冒segmentation fault和其他崩潰的危險。即便這樣的事情發生了,也只會影響到一個連接。父進程將繼續為請求服務,并迅速替換掉已經死亡的子進程。

  預分支在不同的Unix之間有良好的可移植性。Apache向來將它作為重要的目標之一,并且將保持下去。

  但預分支模型由于各種各樣的性能問題而飽受批判。主要的因素是分支進程帶來的負擔、上下文切換帶來的負擔和多個進程為內存帶來的負擔。另外它不能為請求提供有效的緩存機制(比如mmap文件池)。另有一些模型。JAWS project的論文對它們進行了詳細的分析。實際上,所有這些模型帶來的性能損失在不同操作系統上的差別迥異。

  Apache的內核代碼已經支持多線程。NT上的Apache 1.3就是多線程的。至少有另外兩種實驗性的多線程Apache:一個基于1.3內核并運行在DCE上;另一個基于1.0內核,它使用了一套自定義的用戶級線程庫。它們都不是對公眾發行的。有一個已經發行了的Apache實驗版本:運行于Netscape運行時可移植(Portable Run Time)平臺上的1.3版,可以在此下載(如果您準備使用它的話,歡迎您加入new-httpd郵件列表)。被重新設計的Apache2.0將包含抽象化的服務器模型,它使我們可以既支持預分支模型,又支持多種線程模型。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙岩市| 彭阳县| 蒙城县| 肇源县| 陇南市| 东至县| 扶余县| 新化县| 出国| 普陀区| 闽清县| 湖口县| 麻栗坡县| 延边| 达孜县| 河南省| 沙河市| 巴中市| 台州市| 静海县| 泰安市| 基隆市| 津南区| 依兰县| 蓬安县| 迁西县| 阿鲁科尔沁旗| 法库县| 临江市| 沾化县| 虞城县| 巴林左旗| 巩义市| 饶阳县| 都安| 永和县| 茌平县| 当涂县| 武宣县| 南阳市| 庆安县|