中介軟體監控之Apache

來源:互聯網
上載者:User

標籤:work   cpu   size   min   地址   bsp   執行檔案   密碼   ons   

 

補 系統架構

nginx接到請求後轉換為外部ip,然後把請求轉寄到tomcat,還有種方式是轉寄到apache,或者其他語言的應用伺服器ngnix:是web伺服器,接受和轉寄請求用的,不做任何動態處理瀏覽器直接請求cdn(有錢用cdn,沒錢用檔案伺服器);

 Cdn   內容分髮網絡 全稱是Content Delivery Network

 面試:Cdn 的時間演算法,基於什麼的演算法

mysql:資料庫伺服器redis:叢集:多台機器,放一起,請求的時候如果有一個掛了,不影響正常使用,個數是單數,一個leader,多個follower,半數掛了叢集就掛了訊息佇列:發個東西過去,排隊,第一個人發了第二個發,這個順序是按接收到的時間kafka,ZK(zookeeper):一說這兩個肯定是叢集日誌分析:需要用到awk,grep,sed確定效能指標:日誌查看瞭解pv PV:page view,頁面瀏覽量或點擊量,重新整理一次頁面即被計算一次,簡稱PV,UV:即Unique Visitor,訪問您網站的一台電腦用戶端為一個訪客。00:00-24:00內相同的用戶端只被計算一次IP(獨立IP):指獨立IP數。00:00-24:00內相同IP地址之被計算一次KLE、 Maven  自己瞭解 

面試題:大資料移轉怎麼遷移,比如你伺服器上有一個10個g的記錄檔,你怎麼去遷移

傳之前   校正MD5  確保傳過去的資料一致

保證完整性

根據網路傳輸效率,考慮怎麼分區  伺服器直接用scp  命令

傳輸完成後校正MD5  然後再組裝

儲存分區  多線程

速度快,安全係數高

所有的檔案都是二進位形式儲存,取決於你以什麼形式開啟

 

利用分區傳輸+多線程傳輸的機制
1.分區,把大記憶體的資料分成n片
2.md5 演算法校正,在傳輸前傳輸後分別校正,檢查檔案傳輸正確性
3.多線程傳,使用時間為單線程的n分之一

70162107 

 一、Apache1、Apache 簡介Apache HTTP Server  是一個開源的網頁伺服器,具有簡單、速度快、穩定性高的特點,並且還可以作為Proxy 伺服器 2、Apache 安裝

 如果需要整合php  用lampp  整合套件

 Find  / -name httpd  尋找命令   /  根目錄下的所有路徑  -name  通過名字

 Find / |grep httpd  模糊尋找

A,使用yum安裝

Yum  安裝

apache  /etc/httpd  設定檔 為 httpd.conf  可執行檔

 /usr/sbin/httpd  啟動apache   service httpd start|restart|stop (yum 安裝會作為一個系統服務)

B,使用安裝包安裝

C,Lampp  內建的httpd

bin 目錄所有可執行檔  

/opt/lampp/etc   lampp 設定檔

/opt/lampp/etc/extra  擴充的設定檔

查看Apache 版本:

/opt/lampp/bin/httpd -v 查看apache 版本

/usr/sbin/httpd -V  查看你安裝的apache的版本資訊等細節

設定檔 :/opt/lampp/etc/httpd.conf
                 /etc/httpd/conf/httpd.conf

設定檔常見修改的地方:

ServerRoot "/opt/lampp"

Listen  監聽 直接提供連接埠 Listen 9090 

3、Apache 主要目錄和設定檔

 命令:

設定檔 :/opt/lampp/etc/httpd.conf
                 /etc/httpd/conf/httpd.conf

查看進程  

ps -ef       ps  -aux 

ps -ef  

 

Root  使用者啟動主進程的同時會啟動一些子進程

所以  部署php項目,將項目放到/opt/lamp/htdocs該目錄下

 Php  項目都是暖開機   項目不停止運行

1、拉代碼
2、修改設定檔 

部署好bbs後有一個初始化使用者名稱密碼:其實修改的是下面檔案

 

 Apache 擴充檔案 

 重點:Apache  工作模式

用的系統的apache  /opt/lampp/etc/extra  下的httpd-mpm.conf

網頁伺服器Apache 目前一共有三種穩定的MPM(Multi -Processing Module,多進程處理模組)模式。它們分別是prefork ,worker和event 

查看當前工作模式  

/opt/lampp/bin/httpd -v 查看apache 版本

/usr/sbin/httpd -V  查看你安裝的apache的版本資訊等細節

中Server  MPM  欄位

1、Prefork  模式   單進程單線程,一對一

 

Prefork MPM是一個非常穩定的模式,Apache 在啟動之初,會預派生fork 一些子進程,然後等待請求進來,並且總會保持一些備用的子進程。

同時派生出的每個子進程只有一個線程,在一個時間點內只能處理一個請求。Prefork MPM在效率上要比Worker MPM高,但是在記憶體使用量方面也會大很多。

 它並不擅長處理高並發請求,在這種情境下,它會將請求放進隊列中,一直等到有可用進程,請求才會被處理。

參數詳解:

 

 StartServers  //指定伺服器啟動時建立的子進程數,預設為5

 MinSpareServers //指定空閑子進程的最小數量,預設為5.如果當前空閑子進程數小於配置的數量則Apache會以最大每秒一個的速度建立新的子進程

MaxSpareServers  //指定空閑子進程的最大數量,預設為10.如果當前有超過設定的最大進程數則會殺死多餘的進程,如果設定的比MinSpareServers 小,則Apache會預設修改為MinSpareServers +1

MaxRequestWorkers  //限定伺服器同一時間內用戶端最大接入的請求數量,預設是150.任何超過了該限制的請求都要進入等待隊列,

                                   一旦一個個串連被釋放,隊列中的請求才將得到服務。在Apache2.3 前又叫MaxClients

MaxConnectionsPerChild  //每個子進程的在其生命週期內允許最大的請求數量,如果請求總數已經達到這個數值,子進程將會結束;

                                         如果設定為0,子進程將永遠不會結束。若該值設定為非0值,可以防止運行PHP導致的記憶體流失。

ServerLimit 2000          //MaxRequestWorkers(MaxClitnes)最大是256個線程,如果需要更大就需要加上該參數了。

                            這個參數的最大值是2000,如果需要更大需要編譯apache。生效前提:必須放在其他指令的前面

 

進程數與cpu  有關   不可能全部佔滿、

思考:那要是避免排隊的情況 可以直接改 prefork的數值嗎?

 

2、Aache工作模式-Work模式   單進程,多線程   一對多

 

參數詳解:

 StartServers  //伺服器啟動時建立的子進程數

MaxClients   //

MinSpareThreads   //最小空閑線程數,這個MPM將基於整個伺服器監控空閑線程數。假如伺服器中的空閑線程數太少,則將會建立新的空閑線程

MaxSpareThreads   //最大空閑線程數。這個MPM將基於整個伺服器監控空閑線程數。假如伺服器中的總的空閑線程數太多,子進程將殺死多餘的空閑線程。最大

                                    空閑線程數的取值範圍是有限制的。Work 需要其大於等於MinSpareThreads  和ThreadsPerChild 的總和

ThreadsPerChild   //每個子進程建立的常駐執行線程數,子進程在啟動時建立這些線程後就不會再建立新線程了

MaxRequestsPerChild   //允許同時伺服的最大接入請求數量。任何超過該限制的請求都將進入等候隊列

                                  每個進程能處理多少個請求,處理完成後則會死掉

思考:現有如下配置

<IfModule worker.c>
StartServers         4  
MaxClients         300
MinSpareThreads     25 
MaxSpareThreads     75
ThreadsPerChild     25    固定為25不可變
MaxRequestsPerChild  0       每個進程能處理多少個請求,處理完成後則會死掉
</IfModule>

4個進程 每個進程允許25個線程   總共100個  不符合maxsparethreads 75

則會殺掉一個進程   則代表一次性殺掉了25個線程 符合maxsparethreads 

在25 ~ 75 之間

如果不滿足最小的minsparethreads25 則會建立一個進程      

 

Work  模式不安全  一個進程死掉後子線程全部被殺掉

 

3、Apache工作模式-Event模式  (具體參考ppt)

Apache  工作模式切換

切換工作模式   修改檔案名稱即可 預設是prefork   

舉例說明:把這個改為httpd名,工作模式變為work

重點:Apache 監控

一、如何擷取apache監控參數

Vi  /etc/httpd/conf/httpd.conf

重啟apache

瀏覽器輸入:http://ip/server-status

 

 Apache  最佳化

面試:怎麼去apache調優?最佳化手段就是把prefork改為woker,提高支援的線程數worker有可能崩根據實際使用方式,評估下壓力情況,使用者,開看工作模式是哪個 總之,apache是世界上最好的web伺服器

中介軟體監控之Apache

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.