亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

<-
Apache > HTTP Server > 文檔 > 版本2.2 > 模塊
   致謝 | 譯者聲明 | 本篇譯者:金步國(guó) | 本篇譯稿最后更新:2006年1月21日 | 獲取最新版本

Apache MPM worker

說(shuō)明支持混合的多線程多進(jìn)程的多路處理模塊
狀態(tài)MPM
模塊名mpm_worker_module
源文件worker.c

概述

此多路處理模塊(MPM)使網(wǎng)絡(luò)服務(wù)器支持混合的多線程多進(jìn)程。由于使用線程來(lái)處理請(qǐng)求,所以可以處理海量請(qǐng)求,而系統(tǒng)資源的開(kāi)銷小于基于進(jìn)程的MPM。但是,它也使用了多進(jìn)程,每個(gè)進(jìn)程又有多個(gè)線程,以獲得基于進(jìn)程的MPM的穩(wěn)定性。

控制這個(gè)MPM的最重要的指令是,控制每個(gè)子進(jìn)程允許建立的線程數(shù)的ThreadsPerChild指令,和控制允許建立的總線程數(shù)的MaxClients指令。

top

工作方式

每個(gè)進(jìn)程可以擁有的線程數(shù)量是固定的。服務(wù)器會(huì)根據(jù)負(fù)載情況增加或減少進(jìn)程數(shù)量。一個(gè)單獨(dú)的控制進(jìn)程(父進(jìn)程)負(fù)責(zé)子進(jìn)程的建立。每個(gè)子進(jìn)程可以建立ThreadsPerChild數(shù)量的服務(wù)線程和一個(gè)監(jiān)聽(tīng)線程,該監(jiān)聽(tīng)線程監(jiān)聽(tīng)接入請(qǐng)求并將其傳遞給服務(wù)線程處理和應(yīng)答。

Apache總是試圖維持一個(gè)備用(spare)或是空閑的服務(wù)線程池。這樣,客戶端無(wú)須等待新線程或新進(jìn)程的建立即可得到處理。初始化時(shí)建立的進(jìn)程數(shù)量由StartServers指令決定。隨后父進(jìn)程檢測(cè)所有子進(jìn)程中空閑線程的總數(shù),并新建或結(jié)束子進(jìn)程使空閑線程的總數(shù)維持在MinSpareThreadsMaxSpareThreads所指定的范圍內(nèi)。由于這個(gè)過(guò)程是自動(dòng)調(diào)整的,幾乎沒(méi)有必要修改這些指令的缺省值。可以并行處理的客戶端的最大數(shù)量取決于MaxClients指令。活動(dòng)子進(jìn)程的最大數(shù)量取決于MaxClients除以ThreadsPerChild的值。

有兩個(gè)指令設(shè)置了活動(dòng)子進(jìn)程數(shù)量和每個(gè)子進(jìn)程中線程數(shù)量的硬限制。要想改變這個(gè)硬限制必須完全停止服務(wù)器然后再啟動(dòng)服務(wù)器(直接重啟是不行的),ServerLimit是活動(dòng)子進(jìn)程數(shù)量的硬限制,它必須大于或等于MaxClients除以ThreadsPerChild的值。ThreadLimit是所有服務(wù)線程總數(shù)的硬限制,它必須大于或等于ThreadsPerChild指令。這兩個(gè)指令必須出現(xiàn)在其他workerMPM指令的前面。

在設(shè)置的活動(dòng)子進(jìn)程數(shù)量之外,還可能有額外的子進(jìn)程處于"正在中止"的狀態(tài)但是其中至少有一個(gè)服務(wù)線程仍然在處理客戶端請(qǐng)求,直到到達(dá)MaxClients以致結(jié)束進(jìn)程,雖然實(shí)際數(shù)量會(huì)很小。這個(gè)行為能夠通過(guò)以下禁止特別的子進(jìn)程中止的方法來(lái)避免:

一個(gè)典型的針對(duì)workerMPM的配置如下:

ServerLimit 16
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25

在Unix中,為了能夠綁定80端口,父進(jìn)程一般都是以root身份啟動(dòng),隨后,Apache以較低權(quán)限的用戶建立子進(jìn)程和線程。UserGroup指令用于設(shè)置Apache子進(jìn)程的權(quán)限。雖然子進(jìn)程必須對(duì)其提供的內(nèi)容擁有讀權(quán)限,但應(yīng)該盡可能給予它較少的特權(quán)。另外,除非使用了suexec ,否則,這些指令設(shè)置的權(quán)限將被CGI腳本所繼承。

MaxRequestsPerChild指令用于控制服務(wù)器建立新進(jìn)程和結(jié)束舊進(jìn)程的頻率。