免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Apache服務(wù)的安裝及工作模式介紹

博文大綱:

10年積累的做網(wǎng)站、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有海陵免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

  • 一、apache服務(wù)器的安裝及功能介紹;
  • 二、Apache服務(wù)的三種工作模式詳解;
  • 三、修改apache的工作模式;
  • 四、apache工作模式的優(yōu)化與修改;
  • 五、進(jìn)程與線程的區(qū)別。

前言


我們都知道Linux上常見的web服務(wù)器有:apache、nginx、tomcat!

其區(qū)別如下:

  • apache:模塊化服務(wù)器,支持模塊較多、采用servlet處理模型,同步阻塞模型,工作模式多變,對于高并發(fā)的場景處理速度會比較慢,運(yùn)行穩(wěn)定。
  • nginx:輕量級web服務(wù)器,自身支持模塊較少,需要借助第三方模塊支持,采用epoll處理模型,異步非阻塞型,適合高并發(fā)場景,配置簡單。
  • tomcat:apache軟件基金會下開源的子項目,也稱為容器,主要處理java語言編寫的頁面,也可以處理html頁面,并發(fā)連接小。

那么,這篇博文是來圍繞著apache服務(wù)器來進(jìn)行的。

一、apache服務(wù)器的安裝及功能介紹

apache服務(wù)2.4版本功能介紹:

  • MPM支持在運(yùn)行時裝載,支持envet工作模式;
  • 支持異步讀寫;
  • 每個模塊可以指定輸出的日志級別 ;
  • 增強(qiáng)版的表達(dá)式分析器,通過正則匹配表達(dá)式,做動靜分離 .html .php;
  • 請求配置:<if> <Elseif>;
  • 毫秒級別的keep alive timeout;
  • 支持FQDN的虛擬主機(jī) FQDN:全球限定域名,可以通過host主機(jī)名來定義虛擬主機(jī);
  • 支持自定義變量;

相關(guān)概念,有所了解即可,下面開始安裝。

安裝前準(zhǔn)備:

  • 下載我提供的依賴包,并上傳至web服務(wù)器。
  • web服務(wù)器為centos 7.X版本

1、開始安裝:

[root@apache ~]# rz           #xshell中,使用rz命令將下載的tar包上傳至web服務(wù)器
#以下是將所有源碼包解壓縮
[root@apache ~]# tar zxf openssl-1.0.1u.tar.gz -C /usr/src
[root@apache ~]# tar zxf pcre-8.39.tar.gz -C /usr/src
[root@apache ~]# tar zxf zlib-1.2.8.tar.gz -C /usr/src
[root@apache ~]# tar zxf httpd-2.4.23.tar.gz -C /usr/src
[root@apache ~]# tar zxf apr-1.5.2.tar.gz -C /usr/src
[root@apache ~]# tar zxf apr-util-1.5.4.tar.gz -C /usr/src
#以下開始安裝apache所需依賴包
[root@apache ~]# cd /usr/src/apr-1.5.2/
[root@apache apr-1.5.2]# ./configure --prefix=/usr/local/apr && make && make install
[root@apache apr-1.5.2]# cd ../apr-util-1.5.4/
[root@apache apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
[root@apache zlib-1.2.8]# cd ../zlib-1.2.8/
[root@apache zlib-1.2.8]# ./configure --prefix=/usr/local/zlib && make && make install
[root@apache pcre-8.39]# cd ../pcre-8.39/
[root@apache pcre-8.39]# ./configure --prefix=/usr/local/pcre && make && make install
[root@apache pcre-8.39]# cd ../openssl-1.0.1u/
[root@apache openssl-1.0.1u]# ./config -fPIC --prefix=/usr/local/openssl enable-shared && make && make install
#依賴安裝完成后,開始安裝http服務(wù)
[root@apache openssl-1.0.1u]# cd ../httpd-2.4.23/
[root@apache httpd-2.4.23]# ./configure --prefix=/usr/local/http-2.4.23 --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite --with-pcre=/usr/local/pcre --with-z=/usr/local/zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util -enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate && make && make install
[root@apache httpd-2.4.23]# cd /usr/local/http-2.4.23/bin/
[root@apache bin]# ln -sf /usr/local/http-2.4.23/bin/* /usr/local/bin/    #將apache的命令做軟鏈接
[root@apache bin]# apachectl start            #啟動apache服務(wù),會提示以下信息,無所謂的。
#若想解決,只需在apache的主配置文件中添加域名即可
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::c94:cd92:5c18:a1. Set the 'ServerName' directive globally to suppress this message

至此,apache的網(wǎng)頁就可以訪問了。

關(guān)于安裝apache服務(wù)時的配置項,相關(guān)解釋如下:

  • --enable-so:打開dos支持,可以在編譯完成后添加額外功能
  • --enable-cgi:開啟cgi通用網(wǎng)管接口
  • --enable-cgid:開啟cig通用網(wǎng)管接口管理程序
  • --enable-ssl:http加密傳輸協(xié)議,支持https協(xié)議。
  • --enable-rewrite:開啟地址重寫功能,用來實現(xiàn)防盜鏈
  • --with-服務(wù)名稱=/PATH路徑:指定安裝時依賴服務(wù)的路徑
  • --enable-mods-shared=most:在安裝的過程中安裝常用模塊
  • --enable-mpms-shared=all:安裝apache的所有工作模式
  • --enable-proxy:開啟http代理功能
  • --enable-proxy-fcgi:支持fastcgi快速通用網(wǎng)關(guān)接口的fcgi協(xié)議
  • --enable-expires:支持緩存功能
  • --enable-deflate:支持壓縮功能

安裝至此就完成了,下面來談?wù)刟pache服務(wù)的三種工作模式。

二、Apache服務(wù)的三種工作模式詳解

apache服務(wù)的三種工作模式為:

  • prefork:預(yù)派生子進(jìn)程;
  • worker:多進(jìn)程+多線程;
  • event:多進(jìn)程+多線程+epoll處理模型;

1、prefork工作模式:

prefork模式可以算是很古老但是很穩(wěn)定的模式。apache在剛啟動時,就預(yù)派生fork一些子進(jìn)程(默認(rèn)為5個),每個子進(jìn)程只有一個線程,然后等待請求進(jìn)來,并且總是試圖保持一些空閑的子進(jìn)程,之所以這樣做,是為了減少頻繁創(chuàng)建和銷毀進(jìn)程的開銷。每個子進(jìn)程中只有一個線程,在一個時間點內(nèi),一個線程只能處理一個請求。

在Unix系統(tǒng)中,父進(jìn)程通常以root身份運(yùn)行以便綁定80端口,而apache產(chǎn)生的子進(jìn)程通常以一個低特權(quán)的用戶運(yùn)行。運(yùn)行子進(jìn)程的用戶必須要對它服務(wù)的內(nèi)容有讀取的權(quán)限,但是對服務(wù)內(nèi)容之外的其他資源必須擁有盡可能少的權(quán)限。

prefork模式的優(yōu)缺點比較:

  • 優(yōu)點:成熟,兼容所有新老模塊。進(jìn)程之間完全獨(dú)立,使得它非常穩(wěn)定。同時,不需要擔(dān)心線程安全的問題。(我們常用的mod_php,PHP的拓展不需要支持線程安全,prefork這個模式非常安全)。
  • 缺點:一個進(jìn)程相對占用更多的系統(tǒng)資源,消耗更多的內(nèi)存。而且,它并不擅長處理高并發(fā)請求,在這種場景下,它會將請求放進(jìn)隊列中,一直等到有可用進(jìn)程,請求才會被處理。
    總結(jié):prefork工作模式,效率最高,但是內(nèi)存使用較大,不擅長處理高并發(fā)的場景。

2、worker工作模式

worker模式比起prefork模式,是使用了多進(jìn)程+多線程的模式。它也預(yù)先fork了幾個子進(jìn)程(數(shù)量比較少),每個子進(jìn)程能夠生成一些服務(wù)線程和一個監(jiān)聽線程,該監(jiān)聽線程接入請求并將其傳遞給服務(wù)線程處理和應(yīng)答。

線程比起進(jìn)程會更輕量,因為線程通常會共享父進(jìn)程的內(nèi)存空間,因此,內(nèi)存的占用會減少一些,在高并發(fā)的場景下,表現(xiàn)得比 prefork模式好。

worker模式的多進(jìn)程+多線程模式中,各個進(jìn)程之間都是獨(dú)立的,如果某個線程出現(xiàn)異常,受影響的只是Apache的一部分服務(wù),而不是整個服務(wù)。其他進(jìn)程仍然可以工作。

worker模式的優(yōu)缺點比較:

  • 優(yōu)點:占據(jù)更少的內(nèi)存,高并發(fā)下表現(xiàn)更優(yōu)秀。
  • 缺點:必須考慮線程安全的問題,因為多個子線程是共享父進(jìn)程的內(nèi)存地址的。如果使用keep-alive的長連接方式,也許中間幾乎沒有請求,這時就會發(fā)生阻塞,線程被掛起,需要一直等待到超時才會被釋放。如果過多的線程,被這樣占據(jù),也會導(dǎo)致在高并發(fā)場景下的無服務(wù)線程可用。(該問題在prefork模式下,同樣會發(fā)生)

3、event工作模式

這個是 Apache中最新的模式,在現(xiàn)在版本里的已經(jīng)是穩(wěn)定可用的模式。它和 worker模式很像,最大的區(qū)別在于,它解決了 keep-alive 場景下 ,長期被占用的線程的資源浪費(fèi)問題(某些線程因為被keep-alive,掛在那里等待,中間幾乎沒有請求過來,一直等到超時)。

event工作模式中,會有一個專門的線程來管理這些keep-alive類型的線程,當(dāng)有真實請求過來的時候,將請求傳遞給服務(wù)線程,執(zhí)行完畢后,又允許它釋放。這樣,一個線程就能處理幾個請求了,實現(xiàn)了異步非阻塞。

event 工作模式在遇到某些不兼容的模塊時,會失效,將會回退到worker模式,一個工作線程處理一個請求。官方自帶的模塊,全部是支持event 的。

注意一點,event MPM需要Linux系統(tǒng)(Linux 2.6+)對Epoll的支持,才能啟用。

還有,需要補(bǔ)充的是HTTPS的連接(SSL),它的運(yùn)行模式仍然是類似worker的方式,線程會被一直占用,直到連接關(guān)閉。

三、修改apache的工作模式

[root@apache bin]# /etc/init.d/httpd -M      #查看apache加載的模塊
[root@apache bin]# /etc/init.d/httpd -V         #查看apache的工作模式
            ..............#省略部分內(nèi)容
Server's Module Magic Number: 20120211:61
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     event             #這行便是它的工作模式
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
            ..............#省略部分內(nèi)容
[root@apache bin]# cd /usr/local/http-2.4.23/conf/     #切換至指定目錄
[root@apache conf]# vim httpd.conf
            ..............#省略部分內(nèi)容
Include conf/extra/httpd-mpm.conf     #定位httpd-mpm到此,去除開頭的注釋符號
            ..............#省略部分內(nèi)容
LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so    #定位worker至此行
#上面三行就是就是apache服務(wù)的三種工作模式,需要那種工作模式,只需要將原來的工作模式注釋掉
#然后將所需要的工作模式那行去掉注釋符號,然后再啟動服務(wù)即可(注意是啟動,不是重啟)

            ..............#省略部分內(nèi)容
#如,我現(xiàn)在將其改為worker工作模式,那么,配置如下:
Include conf/extra/httpd-mpm.conf     #定位httpd-mpm到此,去除開頭的注釋符號
            ..............#省略部分內(nèi)容
#LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_worker_module modules/mod_mpm_worker.so
[root@apache conf]# /etc/init.d/httpd restart     #重啟時,可能會提示以下信息,是因為域名的原因,不礙事
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::c94:cd92:5c18:a1. Set the 'ServerName' directive globally to suppress this message
#若想要解決那些提示信息,可以打開apache的主配置文件進(jìn)行更改:
[root@apache conf]# pwd        #確定當(dāng)前路徑
/usr/local/http-2.4.23/conf
[root@apache conf]# vim httpd.conf      #打開文件,更改下面的那行,其為本機(jī)IP,若有域名,可以直接寫域名
ServerName 192.168.20.4        #去掉開頭的注釋符號
[root@apache conf]# /etc/init.d/httpd -V            #再次查看apache的工作模式
Server version: Apache/2.4.23 (Unix)
Server built:   Oct 10 2019 20:52:01
Server's Module Magic Number: 20120211:61
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     worker           #可以發(fā)現(xiàn)更改生效了
            ..............#省略部分內(nèi)容

四、apache工作模式的優(yōu)化與修改

在上面改工作模式,其實是調(diào)用了別的地方的配置文件,其調(diào)用的配置文件就是conf/extra/httpd-mpm.conf,這也就是為什么在上面更改工作模式時,需要先去掉Include conf/extra/httpd-mpm.conf 這行的注釋了,就是為了調(diào)用這個配置文件。

[root@apache conf]# cat extra/httpd-mpm.conf | egrep -v '^#|^$'   #查看其文件內(nèi)容,并且過濾掉注釋及空行
<IfModule !mpm_netware_module>
    PidFile "logs/httpd.pid"
</IfModule>                 
<IfModule mpm_prefork_module>       <!--這就是prefork工作模式的參數(shù)-->
    StartServers             5        <!--apache啟動時默認(rèn)開啟的子進(jìn)程數(shù)-->
    MinSpareServers          5    <!--最小的閑置子進(jìn)程數(shù)-->
    MaxSpareServers         10  <!--最大的閑置子進(jìn)程數(shù)-->
    MaxRequestWorkers      250
         <!-- 
         MaxRequestWorkers最為重要,它設(shè)置了允許同時的最大接入請求數(shù)量。任何超過
         MaxRequestWorkers限制的請求將進(jìn)入等候隊列,在apache2.3.1版本
         MaxRequestWorkers被稱為MaxClients,現(xiàn)在仍支持此名字
         -->
    MaxConnectionsPerChild   0
     <!--
     MaxConnectionsPerChild設(shè)置的是每個子進(jìn)程可處理的請求數(shù),每個子進(jìn)程在處理了
     “MaxConnectionsPerChild”個請求后將自動銷毀。0表示無限制,即子進(jìn)程永不銷毀。
     雖然缺省設(shè)為 0 可以使每個子進(jìn)程處理更多的請求,但如果設(shè)成非零值也有兩點重要的好處:
     1、可防止意外的內(nèi)存泄漏。
     2、在服務(wù)器負(fù)載下降的時侯會自動減少子進(jìn)程數(shù)。因此,可根據(jù)服務(wù)器的負(fù)載來調(diào)整這個值。
     在 Apache2.3.9 之前稱之為 MaxRequestsPerChild。
     -->
     <!--prefork控制進(jìn)程在最初建立“StartServers”個子進(jìn)程后,為了滿足“MinSpareServers”
     設(shè)置的需要創(chuàng)建一個進(jìn)程,等待一秒鐘,繼續(xù)創(chuàng)建兩個,再等待一秒鐘,繼續(xù)創(chuàng)建四個....
     如此按照此等級增加創(chuàng)建的進(jìn)程數(shù),最多達(dá)每秒鐘32個,直到滿足MinSpareServers設(shè)置
     的值為止。這種模式 可以不必在請求到來時再產(chǎn)生新的進(jìn)程,從而減小了系統(tǒng)開銷以增加性能。
MaxSpareServers 設(shè)置了最大的空閑進(jìn)程數(shù),如果空閑進(jìn)程數(shù)大于這個 值,Apache 會自動 
kill掉一些多余進(jìn)程。這個值不要設(shè)得過大,但如果設(shè)的值比 MinSpareServers 小,Apache 
會自動把其調(diào)整為 MinSpareServers+1。如果站點負(fù)載較大,
可考慮同時加大MinSpareServers 和MaxSpareServers。-->
</IfModule>
<IfModule mpm_worker_module>    <!--這是worker工作模式的參數(shù)-->
    StartServers             3   <!--apache啟動時默認(rèn)開始的子進(jìn)程數(shù)-->
    MinSpareThreads         75   <!--最小空閑數(shù)量的工作線程-->
    MaxSpareThreads        250    <!--最大空閑數(shù)量的工作線程-->
    ThreadsPerChild         25  <!--每個子進(jìn)程產(chǎn)生的線程數(shù)量-->
    MaxRequestWorkers      400   <!--與prefork模式相同-->
    MaxConnectionsPerChild   0   <!--與prefork模式相同-->
</IfModule>
<IfModule mpm_event_module>    
<!--這是event工作模式的參數(shù),每個配置項的含義與worker基本相似-->
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>
<!--以下內(nèi)容暫時不用看-->
<IfModule mpm_netware_module>
    ThreadStackSize      65536
    StartThreads           250
    MinSpareThreads         25
    MaxSpareThreads        250
    MaxThreads            1000
    MaxConnectionsPerChild   0
</IfModule>
<IfModule mpm_mpmt_os2_module>
    StartServers             2
    MinSpareThreads          5
    MaxSpareThreads         10
    MaxConnectionsPerChild   0
</IfModule>
<IfModule mpm_winnt_module>
    ThreadsPerChild        150
    MaxConnectionsPerChild   0
</IfModule>
<IfModule !mpm_netware_module>
    MaxMemFree            2048
</IfModule>
<IfModule mpm_netware_module>
    MaxMemFree             100
</IfModule>

由于上述配置文件解釋起來過于繁瑣,這里附加一張圖,可以參考此圖來更改上述配置:
Apache服務(wù)的安裝及工作模式介紹
現(xiàn)在我這里的工作模式為worker,可以更改其上述的配置項,以便優(yōu)化其性能,更改如下(我會故意更改的值超出其范圍,制造錯誤,并且寫出其錯誤解決方案):

[root@apache extra]# pwd     <!--確定當(dāng)前路徑-->
/usr/local/http-2.4.23/conf/extra
[root@apache extra]# vim httpd-mpm.conf    <!--編輯該文件,更改如下-->
<IfModule mpm_worker_module>     <!--就更改worker模塊-->
    StartServers             5
    MinSpareThreads         150
    MaxSpareThreads        200001
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>
[root@apache extra]# /etc/init.d/httpd restart         <!--重啟服務(wù)-->
[root@apache extra]# ps -ef | grep httpd | wc -l   
8    <!--共8行,其中一個是主進(jìn)程,還有一個是不相干的,所以要減2,就是說,有6個子進(jìn)程,
而配置文件中定義的每個子進(jìn)程有25個線程,也就滿足了最小空閑線程150,若將最小空閑
子進(jìn)程項改為200,那么重啟后,等待1秒左右,就會發(fā)現(xiàn)又多了兩個子進(jìn)程,以便滿足最小空閑子進(jìn)程-->

在上面的配置中雖然MaxSpareThreads的值為200001(肯定超過了它的最大范圍),但重啟時還是沒有報錯,原因就是MaxRequestWorkers的值還是400,這個值生效了,攔截了MaxSpareThreads的值,所以沒有報錯,那么接下來再將其更改如下:

[root@apache extra]# vim httpd-mpm.conf      <!--編輯配置文件,將值都修改的大些-->
<IfModule mpm_worker_module>
    StartServers             300
    MinSpareThreads         200
    MaxSpareThreads        2000001
    ThreadsPerChild         25
    MaxRequestWorkers      200001      <!--將此處的值也修改的大點-->
    MaxConnectionsPerChild   0
</IfModule>
[root@apache extra]# /etc/init.d/httpd restart     <!--重啟服務(wù),會提示以下信息-->
AH00316: WARNING: MaxRequestWorkers of 200001 is not an integer multiple of ThreadsPerChild of 25, decreasing to nearest multiple 200000, for a maximum of 8000 servers.
AH00318: WARNING: MaxRequestWorkers of 200000 would require 8000 servers and would exceed ServerLimit of 16, decreasing to 400. To increase, please see the ServerLimit directive.
<!--翻譯如下:AH00316:警告:MaxRequestWorkers的200001不是ThreadsPerChild的25的整數(shù)倍,減少到最近的200000的倍數(shù),最多8000個服務(wù)器。
AH00318:警告:MaxRequestWorkers的200000將需要8000個服務(wù)器,將超過服務(wù)器限制16,減少到400。要增加,請參閱ServerLimit指令。-->
<!--根據(jù)提示信息,需要進(jìn)行以下更改-->
[root@apache extra]# vim httpd-mpm.conf       <!--編輯配置文件,更改如下-->
<IfModule mpm_worker_module>
    ServerLimit             2000
    StartServers             80
    MinSpareThreads         200
    MaxSpareThreads        2000
    ThreadsPerChild         25
    MaxRequestWorkers      2000
    MaxConnectionsPerChild   0
</IfModule>
[root@apache extra]# /etc/init.d/httpd restart      <!--再次重啟,就沒有那些提示信息了-->

在上面的配置項中,各個配置項的值都是有默認(rèn)的限制的,若想改變其限制,則需要在配置項的上一行增加ServerLimit配置項,而且ServerLimit配置項也是有最大限制的,若要修改各種值,建議仔細(xì)閱讀下面的內(nèi)容,再進(jìn)行更改。

  • worker 由主控制進(jìn)程生成“StartServers”個子進(jìn)程,每個子進(jìn)程中包含固定的ThreadsPerChild 線程數(shù),各個線程獨(dú)立地處理請求。同樣, 為了不在請求到來時再生成線程,MinSpareThreads 和 MaxSpareThreads 設(shè)置了最少和最多的空閑線程數(shù)。而 MaxRequestWorkers 設(shè)置了同時連入的 clients 最大總數(shù)。如果現(xiàn)有子進(jìn)程中的線程總數(shù)不能滿足負(fù)載,控制進(jìn)程將派生新的子進(jìn)程MinSpareThreads 和 MaxSpareThreads 的最大缺省值分別是 75 和 250。這兩個參數(shù)對 Apache的性能影響并不大,可以按照實際情況相應(yīng)調(diào)節(jié) 。
  • ThreadsPerChild 是 worker MPM 中與性能相關(guān)最密切的指令。ThreadsPerChild 的最大缺省值是 64,如果負(fù)載較大,64 也是不夠的。這時要顯式使用 ThreadLimit 指令,它的最大缺省值是 20000。
  • Worker 模式下所能同時處理的請求總數(shù)是由子進(jìn)程總數(shù)乘以 ThreadsPerChild 值決定的,應(yīng)該大于等MaxRequestWorkers。如果負(fù)載很大,現(xiàn)有的子進(jìn)程數(shù)不能滿足時,控制進(jìn)程會派生新的子進(jìn)程。默認(rèn)最大的子進(jìn)程總數(shù)是 16,加大時 也需要顯式聲明 ServerLimit(系統(tǒng)配置的最大進(jìn)程數(shù)量,最大值是20000)。需要注意的是,如果顯式聲明了 ServerLimit,那么它乘以 ThreadsPerChild的值必須大于等于MaxRequestWorkers,而且MaxRequestWorkers必須是 ThreadsPerChild 的整數(shù)倍,否則 Apache 將會自動調(diào)節(jié)到一個相應(yīng)值。

五、進(jìn)程與線程的區(qū)別

線程就是指進(jìn)程內(nèi)的一個執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實體。

與進(jìn)程的區(qū)別:

  • 地址空間:進(jìn)程內(nèi)的一個執(zhí)行單元;進(jìn)程至少有一個線程;它們共享進(jìn)程的地址空間;而進(jìn)程有自己獨(dú)立的地址空間;
  • 資源擁有:進(jìn)程是資源分配和擁有的單位,同一個進(jìn)程內(nèi)的線程共享進(jìn)程的資源;
  • 線程是處理器調(diào)度的基本單位,但進(jìn)程不是;
  • 二者均可并發(fā)執(zhí)行;

進(jìn)程和線程都是由操作系統(tǒng)所體會的程序運(yùn)行的基本單元,系統(tǒng)利用該基本單元實現(xiàn)系統(tǒng)對應(yīng)用的并發(fā)性。
進(jìn)程和線程的區(qū)別在于:
簡而言之,一個程序至少有一個進(jìn)程,一個進(jìn)程至少有一個線程。
線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。
另外,進(jìn)程在執(zhí)行過程中擁有獨(dú)立的內(nèi)存單元,而多個線程共享內(nèi)存,從而極大地提高了程
序的運(yùn)行效率。

———————— 本文至此結(jié)束,感謝閱讀 ————————

本文標(biāo)題:Apache服務(wù)的安裝及工作模式介紹
標(biāo)題URL:http://m.newbst.com/article38/jegesp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)商城網(wǎng)站外貿(mào)網(wǎng)站建設(shè)網(wǎng)頁設(shè)計公司網(wǎng)站收錄電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)